使用Android作为客户端和C#作为服务器的TCP / IP通信

我想从我的Android设备发送几个陀螺仪读数到PC程序(C#)。 我决定通过套接字编程来实现。 Android手机充当客户端,程序在充当服务器的计算机上运行。 这是我的android代码,现在发送“hello”:

try { socket = new Socket("192.168.1.3", 1071); PrintWriter pw=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()))); pw.println("Hello"); socket.close(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

现在c#服务器代码如下所示:

  listener = new TcpListener(1071); listener.Start(); Socket soc; while (true) { soc= listener.AcceptSocket(); Console.WriteLine("Connection accepted from " + soc.RemoteEndPoint); byte[] b = new byte[10000]; int k = soc.Receive(b); Console.WriteLine(k); char cc = ' '; string test = null; Console.WriteLine("Recieved..."); for (int i = 0; i < k - 1; i++) { Console.Write(Convert.ToChar(b[i])); cc = Convert.ToChar(b[i]); test += cc.ToString(); } } soc.Close(); } 

问题是建立了连接,但我无法在服务器上收到任何信息。 每次k的值为零。 但是连接是成功的。

 Output: Connection accepted from 192.168.1.6:36742 0 Recieved... Connection accepted from 192.168.1.6:57013 0 Recieved... 

等等。

任何人都可以告诉我可能是什么问题,我很确定UTF-8等编码问题不存在。

看起来你错过了在关闭它之前冲洗你的PrintWriter 。