从Android(作为客户端)发送TCP数据 - 没有数据被发送?

时间:2011-06-10 16:17:10

标签: android sockets tcp client communication

我正在尝试通过TCP将数据从我的Android应用程序发送到我的电脑。

代码如下:

Socket socket = new Socket("10.0.78.75", 50505);   

OutputStream out = socket.getOutputStream();       
PrintWriter output = new PrintWriter(out);         

mStatusText.setText("Sending Data to PC");         
output.println("Hello from Android");              
mStatusText.setText("Data sent to PC");            

socket.close();                                    
mStatusText.setText("Socket closed");              

在执行此操作时,我根本没有遇到任何错误,但是,服务器应用程序(用C#编写)不会获得任何数据。 它看到客户端连接到它,并看到数据正在发送,但是,数据字符串是空的......并且想到为什么会发生这种情况?

PS:服务器代码从以下站点复制,并已使用C#TCP客户端进行测试。 http://www.switchonthecode.com/tutorials/csharp-tutorial-simple-threaded-tcp-server

3 个答案:

答案 0 :(得分:17)

尝试在out.flush();out.close();;

之后加println(..)

答案 1 :(得分:10)

我遇到了同样的问题,而且Haphazard的解决方案对我来说还不够好。我认为您应该使用(在这种情况下)output.flush();output.close();而不是out.flush();out.close();。您必须记住AndroidManifest.xml中的互联网权限:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-sdk>之后和<application>

之前

答案 2 :(得分:2)

总猜这个,但你有没有尝试在关闭前调用输出流上的flush()