Net服务器&;Java客户端(套接字)发送&;接收文本

Net服务器&;Java客户端(套接字)发送&;接收文本,java,vb.net,sockets,tcp,client,Java,Vb.net,Sockets,Tcp,Client,我是Java编程新手 我编写了一个简单的服务器(VB.NET)/客户端(Java)程序。 来自Java的文本已成功发送到VB.Net,但在Java中未收到来自VB.Net的响应 我错过什么了吗 这是我的密码 VB.NET(服务器) Java(客户端) 我不确定这里的问题是什么,但我建议将字符串拆分为字符,然后将数组的长度写入输出流。java中的for循环可以从DataInputStream中分别读取字符,然后将其组装成字符串 DataInputStream dis = new DataInput

我是Java编程新手 我编写了一个简单的服务器(VB.NET)/客户端(Java)程序。 来自Java的文本已成功发送到VB.Net,但在Java中未收到来自VB.Net的响应

我错过什么了吗

这是我的密码

VB.NET(服务器)

Java(客户端)


我不确定这里的问题是什么,但我建议将字符串拆分为字符,然后将数组的长度写入输出流。java中的for循环可以从DataInputStream中分别读取字符,然后将其组装成字符串

DataInputStream dis = new DataInputStream(socket.getInputStream());
String chars = "";
for (int i = 0; i < dis.readInt(); i ++) {
    chars += dis.readChar();
}
System.out.println(chars);
DataInputStream dis=newdatainputstream(socket.getInputStream());
字符串字符=”;
对于(int i=0;i

vbs流也不是在写行,只是在写字符。尝试在“got it”

末尾添加特征线字符,您的
Java
客户端看起来很好。您只需确保发送的换行符与
BufferedReader.readLine
语句相匹配。替换:

Dim s_byt() As Byte = Encoding.UTF8.GetBytes("got it")

在您的服务器中



旁白:我想在这里看看线程服务器,因为它在侦听连接时会阻止应用程序。这是一个

感谢您的帮助,但我仍然在frmClient.run(frmClient.java:19)处的frmClient.main(frmClient.java:8)处的java.io.DataInputStream.readInt(未知源代码)处的线程“main”java.io.EOFException中遇到此错误
这可能是因为您没有在vbs中实际编写int?(facepalm)
线程“main”java.net.SocketException中的异常:java.net.SocketInputStream.read中的连接重置(未知源)在sun.nio.cs.StreamDecoder.readBytes(未知源)在sun.nio.cs.StreamDecoder.implRead中的连接重置(未知源)在sun.nio.cs.StreamDecoder.read中的连接重置(未知源)在java.io.BufferedReader.readLine(未知源代码)在java.io.BufferedReader.readLine(未知源代码)在java.io.BufferedReader.readLine(未知源代码)在java.io.BufferedReader.readLine(未知源代码)在frmClient.run(frmClient.java:18)
非常感谢@Reimeus,它成功了,我太愚蠢了,我本该想办法解决的,又出了点小问题,你能帮我吗-
DataInputStream dis = new DataInputStream(socket.getInputStream());
String chars = "";
for (int i = 0; i < dis.readInt(); i ++) {
    chars += dis.readChar();
}
System.out.println(chars);
Dim s_byt() As Byte = Encoding.UTF8.GetBytes("got it")
Dim s_byt() As Byte = Encoding.UTF8.GetBytes("got it" + vbCr)