我终于得到了要发送的数据报套接字,现在我似乎无法让它们接收。 以下是我为每一半设置的两个类/线程。首先发送线程(工作正常): [注意:我删除了所有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的新手,所以我认为这就是问题所在。
谢谢, 丹