Android 无法通过TCP将数据从java套接字发送到.net TCP服务器
我正在尝试使用android应用程序向我网络上的服务器发送tcp数据。服务器是用c#编写的 当我使用下面的代码传输数据时,服务器只接收整个系列的\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 有人知道为什么吗Android 无法通过TCP将数据从java套接字发送到.net TCP服务器,android,sockets,tcp,client,Android,Sockets,Tcp,Client,我正在尝试使用android应用程序向我网络上的服务器发送tcp数据。服务器是用c#编写的 当我使用下面的代码传输数据时,服务器只接收整个系列的\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 有人知道为什么吗 Socket socket = new Socket(host, port); PrintWriter pw = new PrintWriter(socket.getOutputStream(), true); pw.print("test");
Socket socket = new Socket(host, port);
PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);
pw.print("test");
socket.close();
我不确定这是否与此有关,但您可能希望尝试手动刷新
PrintWriter
。您确实将true
传递给了它的构造函数以请求自动刷新,但我相信只有在打印换行符时才会发生这种情况,而您的示例代码不会这样做。您可能需要尝试println(“测试”)。在java中,您需要刷新行,因此这可能是问题的原因。关闭PrintWriter,而不是套接字。一个想法是检查发送内容的编码是否与服务器期望的匹配。是否应该在关闭前刷新?是的,但这只会刷新套接字的缓冲区。PrintWriter
类维护自己的缓冲区,必须在关闭套接字之前刷新缓冲区,以确保所有数据都正确传递。