Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法通过TCP将数据从java套接字发送到.net TCP服务器_Android_Sockets_Tcp_Client - Fatal编程技术网

Android 无法通过TCP将数据从java套接字发送到.net TCP服务器

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");

我正在尝试使用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.close();

我不确定这是否与此有关,但您可能希望尝试手动刷新
PrintWriter
。您确实将
true
传递给了它的构造函数以请求自动刷新,但我相信只有在打印换行符时才会发生这种情况,而您的示例代码不会这样做。

您可能需要尝试println(“测试”)。在java中,您需要刷新行,因此这可能是问题的原因。

关闭PrintWriter,而不是套接字。

一个想法是检查发送内容的编码是否与服务器期望的匹配。
是否应该在关闭前刷新?是的,但这只会刷新套接字的缓冲区。
PrintWriter
类维护自己的缓冲区,必须在关闭套接字之前刷新缓冲区,以确保所有数据都正确传递。