Android接收DatagramPacket

时间:2014-01-26 21:08:56

标签: android sockets udp datagram

我看到很多页面,并尝试了许多建议,但仍然无法通过设备上的UDP接收数据(nexus 4)。我在局域网上工作,通过wifi(3G已关闭)。

我有一个客户端,在PC上(192.168.1.5)和Android设备上的消费者(192.168.1.3:54445)

这是客户端代码:

    String string = "hello udp";
    DatagramSocket socket = null;

    try {
        address = InetAddress.getByName("192.168.1.3");
        socket = new DatagramSocket();

        DatagramPacket packet = new DatagramPacket(buf, buf.length, address, 54445);
        socket.send(packet);

以下是消费者代码:

    DatagramSocket socket = null;
    stop = false;

    InetAddress address = null;

    try {
        socket = new DatagramSocket(54445);
        while (!stop) {
            byte[] buffer = new byte[minBufSize];
            DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
            socket.receive(packet);
            Log.d(this.getClass().getSimpleName(), String.valueOf(packet.getLength()));

调试器在socket.receive(数据包)上停止。消费者在AsyncTask中工作。

谢谢!

1 个答案:

答案 0 :(得分:0)

这是我的错,首先检查你的路由器设置。