C#到Unity Android Apk的Tcp连接

C#到Unity Android Apk的Tcp连接,c#,android,unity3d,tcp,C#,Android,Unity3d,Tcp,我有一个tcp连接程序。有客户端和服务器端。客户端文件正在使用unity作为脚本。服务器端文件在主pc上运行,并作为桌面应用程序运行。当我打开服务器和客户端文件时,它们在pc上工作。如果我也将这些文件分离到不同的pc上,它们就会工作。到目前为止没有任何问题。不过,如果我想将这个客户端脚本文件(位于unity上)构建为android apk并将其移动到我的移动设备上,客户端文件可以工作,但无法连接到服务器。在计算机上,没有任何错误,但apk文件有错误 C#服务器端代码-- 客户端C#脚本-- 这对

我有一个tcp连接程序。有客户端和服务器端。客户端文件正在使用unity作为脚本。服务器端文件在主pc上运行,并作为桌面应用程序运行。当我打开服务器和客户端文件时,它们在pc上工作。如果我也将这些文件分离到不同的pc上,它们就会工作。到目前为止没有任何问题。不过,如果我想将这个客户端脚本文件(位于unity上)构建为android apk并将其移动到我的移动设备上,客户端文件可以工作,但无法连接到服务器。在计算机上,没有任何错误,但apk文件有错误

C#服务器端代码--

客户端C#脚本--


这对我来说太重要了。我正在等待您的帮助。

下面是我其他项目中的一些连接演示。它可以在Android/iOS/Mac/PC上运行,没有问题,也没有经过测试。我用织布机穿线很方便,你们可能会从某处抓住它

或者只是你输入IP的方式。应该是这样的

string IP = "127.0.0.1";
client.BeginConnect(IPAddress.Parse(IP), ClientListenPort, ClientEndConnect, null);
这是我的工作服务器侦听器:

//create listener
        listener = new TcpListener(IPAddress.Any, ClientListenPort);
        listener.Start();
        listener.Server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);

Loom.RunAsync(() => {
                while (!stop)
                {
                    // Wait for client connection
                    clients.Add(listener.AcceptTcpClient());
                    clients[clients.Count - 1].NoDelay = true;
                    // We are connected
                    isConnected = true;

                    streams.Add(clients[clients.Count - 1].GetStream());
                    streams[streams.Count - 1].WriteTimeout = 500;

                    Loom.QueueOnMainThread(() => {
                        isConnected = true;
                    });
                    System.Threading.Thread.Sleep(1);
                }
            });
这是我的工作客户端演示连接:

Loom.RunAsync(() => {
        // if using the IPAD
        //client.Connect(IPAddress.Parse(IP), ClientListenPort);
        client.BeginConnect(IPAddress.Parse(IP), ClientListenPort, ClientEndConnect, null);
        while (!client.Connected)
        {
            System.Threading.Thread.Sleep(1);
        }

        //do sth...
    });

void ClientEndConnect(IAsyncResult result)
{
    client.EndConnect(result);
}

你知道哪个错误吗?如果是这样的话,请你也把它贴出来好吗?事实上我没有收到任何错误。当我启动apk文件时,它会启动,但不会连接到服务器应用程序。从设备日志检查,如果您在tcpclient中使用该固定值,我猜测它的IP地址问题
//create listener
        listener = new TcpListener(IPAddress.Any, ClientListenPort);
        listener.Start();
        listener.Server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);

Loom.RunAsync(() => {
                while (!stop)
                {
                    // Wait for client connection
                    clients.Add(listener.AcceptTcpClient());
                    clients[clients.Count - 1].NoDelay = true;
                    // We are connected
                    isConnected = true;

                    streams.Add(clients[clients.Count - 1].GetStream());
                    streams[streams.Count - 1].WriteTimeout = 500;

                    Loom.QueueOnMainThread(() => {
                        isConnected = true;
                    });
                    System.Threading.Thread.Sleep(1);
                }
            });
Loom.RunAsync(() => {
        // if using the IPAD
        //client.Connect(IPAddress.Parse(IP), ClientListenPort);
        client.BeginConnect(IPAddress.Parse(IP), ClientListenPort, ClientEndConnect, null);
        while (!client.Connected)
        {
            System.Threading.Thread.Sleep(1);
        }

        //do sth...
    });

void ClientEndConnect(IAsyncResult result)
{
    client.EndConnect(result);
}