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

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

问题描述:

我想要一个android应用程序发送tcp数据到我的网络上的服务器。服务器是用C#编写的。无法通过TCP从java套接字发送数据到.net tcp服务器

当我使用下面的代码来传输数据时,服务器只接收一系列的\ 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(); 
+1

一个想法是检查发送的内容是否与服务器期望的内容匹配。 – fhj 2010-11-02 05:47:09

我不确定这是否与此有关,但您可能想尝试手动刷新PrintWriter。您确实将true传递给其构造函数以请求自动清理,但我相信只有在您打印出一个换行符时才会发生这种情况,而换行符不适用于您的示例代码。

+0

关闭前不应该关闭“flush”? – st0le 2010-11-02 05:50:57

+0

是的,但那只会刷新套接字的缓冲区。 'PrintWriter'类维护自己的缓冲区,必须在套接字关闭之前刷新缓冲区以确保所有数据正确传递。 – bcat 2010-11-02 05:53:42

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

关闭PrintWriter,而不是套接字。