将数据发送到Android的PC我想从我的Android app
超过TCP
将数据发送到我的PC
。我用PC到PC进行了测试,工作正常。但是当我尝试从Android发送到PC时,Android正在卡住。 PC套接字和android套接字有什么区别,我该如何解决这个问题?无法通过TCP
服务器
byte[] buffer = new byte[1000];
IPAddress ipAddress = IPAddress.Parse("XXX.XXX.XXX.XXX");
IPEndPoint localEndpoint = new IPEndPoint(ipAddress, 8080);
Socket sock = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
sock.Bind(localEndpoint);
sock.Listen(5);
Socket confd = sock.Accept();
while (true) {
string data = null;
int b = confd.Receive(buffer);
data += Encoding.ASCII.GetString(buffer, 0, b);
Console.WriteLine("" + data);
}
客户端的Android
IPAddress ipAddress = IPAddress.Parse("XXX.XXX.XXX.XXX");
IPEndPoint ipEndpoint = new IPEndPoint(ipAddress, 8080);
Socket client = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
try {
client.Connect(ipEndpoint);
string message = "What can i send for you?";
byte[] sendmsg = Encoding.ASCII.GetBytes(message);
int n = client.Send(sendmsg);
}
catch (Exception e) {
Toast.MakeText(Application.Context, e.ToString(), ToastLength.Short).Show();
}
当处理网络通信时,它总是有助于首先检查基本知识。确保没有防火墙或网络路由器被阻止。试试不同的端口(8080很常见)。尝试一个不同的IP地址。确保你的IP地址在客户端和服务器上是正确的。你说过你尝试过PC - > PC,但它是在同一台PC还是不同的?如果相同然后尝试不同。等 –
我检查了所有,仍在工作的PC - > PC,但不是Android - > PC。 – Pareidolia
大多数路由器不允许来自Wifi的流量到有线(pc?)网络。确保工作。顺便说一句:IP地址应该是本地地址(192.168.x.x/10.x.x.x) - 您不必屏蔽它们。 – Robert