// 与UDP数据接收线程通信更新UI线程中EditText控件中的内容
receiveHandler = new Handler() {
public void handleMessage(Message msg) {
point2.setText(receiveInfo);
}
};
}
// UDP数据接收线程
public class udpReceiveThread extends Thread {
@Override
public void run() {
try {
socket = new DatagramSocket(8081);
listenStatus = true;
while (listenStatus)
{
// byte[] inBuf= new byte[1024];
byte[] inBuf = new byte[1024];
DatagramPacket inPacket = new DatagramPacket(inBuf,
inBuf.length);
socket.receive(inPacket);
String str = new String(inPacket.getData());
receiveInfo = Change1(str, inPacket.getLength()).trim();
// receiveInfo = new String (inPacket.getData());
// receiveInfo= stringtopoint(inBuf,inPacket.getLength());
socket.close();
Message msg = new Message();
receiveHandler.sendMessage(msg);
try {Thread.sleep(100);
} catch (Exception e) {
// TODO: handle exception
}
}
} catch (Exception e) {
e.printStackTrace();
// TODO Auto-generated catch block
}
}
}
// 发送按钮单击事件
public void SendButtonClick(View source) {
new udpSendThread().start();
}
// 监听按钮点击事件
public void ListenButtonClick(View source) {
if (listenStatus == false) {
stop.setText("停止监听");
new udpReceiveThread().start();
} else {
stop.setText("开始监听");
socket.close();
listenStatus = false;
new udpReceiveThread().interrupt();
}
}
JAVA UDP通信为什么只能接收一次数据,我想要时刻接收数据,并更新UI,大神们帮我看看程序吧?
答案:2 悬赏:0 手机版
解决时间 2021-02-28 19:48
- 提问者网友:雨不眠的下
- 2021-02-27 22:51
最佳答案
- 五星知识达人网友:妄饮晩冬酒
- 2021-02-28 00:00
开始是使用
new udpReceiveThread()。。。。。。。。。
终止也是使用
new udpReceiveThread()
操作的是完全不同的一个线程 了
new udpReceiveThread()。。。。。。。。。
终止也是使用
new udpReceiveThread()
操作的是完全不同的一个线程 了
全部回答
- 1楼网友:老鼠爱大米
- 2021-02-28 00:19
搜一下:JAVA UDP通信为什么只能接收一次数据,我想要时刻接收数据,并更新UI,大神们帮我看看程序吧?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯