Android数据报套接字无法正常工作,第2部分

时间:2013-10-04 01:05:30

标签: android multithreading sockets udp datagram

我终于得到了要发送的数据报套接字,现在我似乎无法让它们接收。 以下是我为每一半设置的两个类/线程。首先发送线程(工作正常): [注意:我删除了所有try / catch行以简化代码]

public class SendThread extends Thread
{
    public static DatagramSocket s;
    public static boolean PortOpen = false;
    public static byte[] outarray = new byte[100];
    public static int outsize;
    public static byte[] inarray = new byte[100];
    public static int insize = 0;
    public static InetAddress local = null;

    @Override
    public void run()
    {
        UDPInit();
        UDPSend();
    }

    void UDPInit()
    {
        s = new DatagramSocket();
        MainActivity.local = InetAddress.getByName("192.168.1.6");
        PortOpen = true;
    }

    public static void UDPSend(){
        int i;
        if(!PortOpen)
            return;
        boolean test = true;
        while(test){
            if(insize>0){
                    DatagramPacket p = new DatagramPacket(inarray, insize, local, 54372);
                    s.send(p);
                        insize=0;
                }
            sleep(1);
        }
    }

}

现在是接收者:

public class GetThread extends Thread {
    public static DatagramSocket s;

    @Override
    public void run() {
        byte[] message = new byte[1500];
            DatagramPacket p = new DatagramPacket(message, message.length);
        s = new DatagramSocket(54372);
            boolean test = true;
        while(test){
            s.receive(p);
            text = new String(message, 0, p.getLength());
            }
        }
}

我在我的主要课程中用以下内容初始化它们:

new SendThread().start();
new GetThread().start();

我是java / threads的新手,所以我认为这就是问题所在。

谢谢, 丹

0 个答案:

没有答案