C# android平板电脑与PC的通信
我从Android开始,在我的第一个应用程序中,我需要在Android table和PC之间建立通信。通信由Static IPs直接进行,因为我需要,当我有多台PC和平板电脑时,每个table只与其PC通信 从平板电脑到Pc的通信已经开始工作,但从Pc到桌面的通信无法传输数据 安卓端C# android平板电脑与PC的通信,c#,android,communication,C#,Android,Communication,我从Android开始,在我的第一个应用程序中,我需要在Android table和PC之间建立通信。通信由Static IPs直接进行,因为我需要,当我有多台PC和平板电脑时,每个table只与其PC通信 从平板电脑到Pc的通信已经开始工作,但从Pc到桌面的通信无法传输数据 安卓端 public class Server implements Runnable { @Override public void run() { while (always
public class Server implements Runnable
{
@Override
public void run()
{
while (always==true)
{
while(start2==false)
{
}
try
{
InetAddress serverAddr = InetAddress.getByName("192.168.173.133");
updatetrack("\nServer: Start connecting\n");
//*DatagramSocket socket = new DatagramSocket(SERVERPORT2, serverAddr);/
DatagramSocket socket = new DatagramSocket(SERVERPORT2);
byte[] buf = new byte[17];
DatagramPacket packet = new DatagramPacket(buf, buf.length, serverAddr, SERVERPORT2);
//*DatagramPacket packet = new DatagramPacket(buf, buf.length);/
updatetrack("Server: Receiving\n");
socket.receive(packet);
updatetrack("Server: Message received: '" + new String(packet.getData()) + "'\n");
updatetrack("Server: Succeed!\n");
start2=false;
}
catch (Exception e)
{
updatetrack("Server: Error!\n");
start2=false;
}
}
}
}
192.168.173.133是表IP,SERVERPORT2是4445
当我启动应用程序时,它在显示“Server:Receiving”后仍在等待数据,但
C#代码
我想这是任何愚蠢的想法,我被遗忘了,但在阅读了许多论坛和书籍后,我停止了这一点
如果您使用UDP连接和套接字,欢迎提供任何建议。接收(数据包)不会等待数据包。如果缓冲区中没有数据包,此操作将引发异常。 尝试将代码更改为:
@Override
public void run()
{
while (always==true)
{
while(start2==false)
{
}
try
{
InetAddress serverAddr = InetAddress.getByName("192.168.173.133");
updatetrack("\nServer: Start connecting\n");
//*DatagramSocket socket = new DatagramSocket(SERVERPORT2, serverAddr);/
DatagramSocket socket = new DatagramSocket(SERVERPORT2);
while (always==true)
{
try{
byte[] buf = new byte[17];
DatagramPacket packet = new DatagramPacket(buf, buf.length, serverAddr, SERVERPORT2);
//*DatagramPacket packet = new DatagramPacket(buf, buf.length);/
updatetrack("Server: Receiving\n");
socket.receive(packet);
updatetrack("Server: Message received: '" + new String(packet.getData()) + "'\n");
updatetrack("Server: Succeed!\n");
start2=false;
}
catch(Exception ex) {ex.printStackTrace();}
}
}
catch (Exception e)
{
updatetrack("Server: Error!\n");
start2=false;
}
}
}
@Override
public void run()
{
while (always==true)
{
while(start2==false)
{
}
try
{
InetAddress serverAddr = InetAddress.getByName("192.168.173.133");
updatetrack("\nServer: Start connecting\n");
//*DatagramSocket socket = new DatagramSocket(SERVERPORT2, serverAddr);/
DatagramSocket socket = new DatagramSocket(SERVERPORT2);
while (always==true)
{
try{
byte[] buf = new byte[17];
DatagramPacket packet = new DatagramPacket(buf, buf.length, serverAddr, SERVERPORT2);
//*DatagramPacket packet = new DatagramPacket(buf, buf.length);/
updatetrack("Server: Receiving\n");
socket.receive(packet);
updatetrack("Server: Message received: '" + new String(packet.getData()) + "'\n");
updatetrack("Server: Succeed!\n");
start2=false;
}
catch(Exception ex) {ex.printStackTrace();}
}
}
catch (Exception e)
{
updatetrack("Server: Error!\n");
start2=false;
}
}
}