Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# android平板电脑与PC的通信_C#_Android_Communication - Fatal编程技术网

C# android平板电脑与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

我从Android开始,在我的第一个应用程序中,我需要在Android table和PC之间建立通信。通信由Static IPs直接进行,因为我需要,当我有多台PC和平板电脑时,每个table只与其PC通信

从平板电脑到Pc的通信已经开始工作,但从Pc到桌面的通信无法传输数据

安卓端

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;
            }
        }
    }