C# 从java服务器套接字接收C客户端套接字中的数据时出错
我正在使用C客户机套接字和Java服务器套接字创建套接字连接。 当我从客户机套接字发送数据时,服务器套接字正在正确地接收该数据。 但当我试图将数据从服务器套接字发送回客户端套接字时,它在客户端接收数据时被挂起 C.net中的客户端代码C# 从java服务器套接字接收C客户端套接字中的数据时出错,c#,java,serversocket,C#,Java,Serversocket,我正在使用C客户机套接字和Java服务器套接字创建套接字连接。 当我从客户机套接字发送数据时,服务器套接字正在正确地接收该数据。 但当我试图将数据从服务器套接字发送回客户端套接字时,它在客户端接收数据时被挂起 C.net中的客户端代码 clientSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); string hostName =
clientSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
string hostName = System.Net.Dns.GetHostName();
System.Net.IPHostEntry hostEntry = System.Net.Dns.GetHostEntry(hostName);
System.Net.IPAddress[] ipAddresses = hostEntry.AddressList;
System.Net.IPEndPoint remoteEP =
new System.Net.IPEndPoint(ipAddresses[ipAddresses.Length - 1], port);
clientSocket.Connect(remoteEP);
string sendData = inputFilePath;
byte[] byteDataSend = System.Text.Encoding.ASCII.GetBytes(sendData);
clientSocket.Send(byteDataSend);
int receivedBufferSize = clientSocket.ReceiveBufferSize;
byte[] recivedData = new Byte[receivedBufferSize];
int receivedDataLength = clientSocket.Receive(recivedData);
string stringData = Encoding.ASCII.GetString(recivedData, 0, receivedDataLength);
textFilePath = stringData;
Console.Write(stringData);
clientSocket.Close();
Java中的服务器套接字代码
Socket connection = server.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
fileName = in.readLine();
convertedFile =runConverter.convertDocumet(fileName);
byte[] sendingData = convertedFile.getBytes("US-ASCII");
DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
dos.write(sendingData, 0, sendingData.length);
告诉我问题出在哪里??
请帮助…这种c代码的常见问题是同步接收。 我总是建议进行异步读取,如中所示 我不确定这是否是问题的根源,但是如果您通过一点日志记录来实现异步接收,则很有可能解决您的问题,或者使问题更加明显 挂起同步接收确实表明Java没有将数据发送到c正在侦听的同一套接字,因此仔细检查这些端点也是一个好主意 希望有帮助