android 示例中的 udp

udp in android example

我正在使用下面的代码在两个 android 设备之间发送文本消息,但我无法在接收方接收到数据包
发件人:

   String messageStr="Hello Android!";
          Log.d("note","message prepaered");
          int server_port = 12345;
          try{
              Log.d("note","socket prepaered");
          DatagramSocket s = new DatagramSocket();
              Log.d("note","socket defined");
          InetAddress local = InetAddress.getByName(ip.getText().toString());
          int msg_length=messageStr.length();
          byte[] message = messageStr.getBytes();
              Log.d("note","converting message to bytes");
          DatagramPacket p = new DatagramPacket(message, msg_length,local,server_port);
          s.send(p);
              Log.d("note","sending msg");}
          catch (SocketException e){
              Log.d("error",e.getMessage());
          }
          catch(IOException v1){
              Log.d("error", v1.getMessage());
          } 

接收方:

 String text;
          int server_port = 12345;
          byte[] message = new byte[1500];
          try{
          DatagramPacket p = new DatagramPacket(message, message.length);
              Log.d("note","putting msg in packet");
          DatagramSocket s = new DatagramSocket(server_port);
              Log.d("note","defining socket");
          s.receive(p);
              Log.d("note","recieving packet");
          text = new String(message, 0, p.getLength());
          msg.setText(text);
          s.close();
          }
          catch (SocketException e){
              Log.d("error",e.getMessage());
          }
          catch(IOException v1){
              Log.d("error", v1.getMessage());
          }

在此先感谢您的帮助

好的。您的故事中有很多未定义的变量。 首先,您应该在本地计算机上尝试此操作,您可以确定这不是网络问题。 其次,尝试将接收代码包装在一个死循环中,这将使调试更容易。 如果到现在为止,您发现您的代码实际上在本地主机上运行, 您应该检查设备上的网络配置,确保您使用的地址正确,并且两台设备都在同一网络中。

如果您的代码在本地主机上运行时遇到问题,请尝试在工作软件上独立测试您的服务器和客户端,例如 http://sourceforge.net/projects/sockettest/,这将允许您确保您的客户端和服务器代码正在运行

另外不要忘记时间,先启动接收器。

P.S。请正确格式化您的代码。