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

2024-03-30

我想将一些陀螺仪读数从我的 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 http://docs.oracle.com/javase/6/docs/api/java/io/PrintWriter.html#flush%28%29在你关闭它之前。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Android 作为客户端、C# 作为服务器的 TCP/IP 通信 的相关文章

随机推荐