【问题标题】:Connection between Android and C# applicationAndroid 和 C# 应用程序之间的连接
【发布时间】:2019-02-03 00:31:39
【问题描述】:

我正在尝试在 Android 设备和 C# 应用程序之间发送一个简单的字符串

在安卓上作为客户端

Thread thread = new Thread() {
        @Override
        public void run() {
            try {
                Socket socket = new Socket("192.168.1.136",80);
                DataOutputStream DOS = new DataOutputStream(socket.getOutputStream());
                DOS.writeUTF("HELLO_WORLD");
                socket.close();

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    };

    thread.start();

在 PC 上使用 C# 作为服务器

        byte[] byteReadStream = null; 
        IPEndPoint ipe = new IPEndPoint(IPAddress.Any, 0);
        TcpListener tcpl = new TcpListener(ipe);
        while (true)
        {
            tcpl.Start();
            TcpClient tcpc = tcpl.AcceptTcpClient();
            byteReadStream = new byte[tcpc.Available];
            tcpc.GetStream().Read(byteReadStream, 0, tcpc.Available);
            Console.WriteLine(Encoding.Default.GetString(byteReadStream) + "\n");
        }

我尝试使用特定的 IP 和端口它不起作用

蓝牙不工作

我在这个网站上尝试了几个发布的代码,都没有工作。所以也许这就是我缺少的东西。

请告诉我如何修复代码或以任何即时方式在 android 和 windows 应用程序之间发送字符串的更好方法。

【问题讨论】:

  • 我不确定,但您正在端口 80 上打开一个套接字,另一个问题是您在 C# 中的套接字没有在特定端口上侦听...
  • 客户端希望服务器监听 80 端口,但服务器监听的是随机端口。在 IPEndPoint 构造函数中指定一个具体端口。然后在客户端使用同一个端口
  • @NineBerry 我从未使用过 C# 套接字,但应该在 while 循环之外调用“tcpl.start”吗?我只是继续查看代码,它不遵循正常的 tcp 套接字流。
  • 使用端口 80 是我最后一次测试。我确实尝试了几个端口,在防火墙中打开它们并禁用防火墙。我还尝试设置特定端口“9000”,但它不起作用。我总是从客户端无法访问主机。我以前也从未使用过套接字,所以我不确定正常的 tcp 套接字流是如何工作的。

标签: java c# android


【解决方案1】:

After looking around some other posts.问题是只要USB连接到我用于调试的设备,它总是让主机无法访问,移除USB然后代码就可以工作了。

我不确定这是否与蓝牙相同。

【讨论】:

    猜你喜欢
    • 2022-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 2020-12-25
    相关资源
    最近更新 更多