一个线程的问题

y63964632 2011-09-04 10:56:27
代码如下:
import java.io.IOException;
import java.net.*;

public class TestMonitorPort {

public static void main(String[] args) {

printReceiveInfomationFromPort(6000);

}

static void printReceiveInfomationFromPort(int port) {
new Thread(new MonitorPortRunnable(port)).start();
}

}

class MonitorPortRunnable implements Runnable {
byte buf[] = new byte[1024];
DatagramSocket ds = null;
DatagramPacket dp = null;
int localReceivePort ;
public MonitorPortRunnable(int localReceivePort) {
this.localReceivePort = localReceivePort;
}
public void run() {
dp = new DatagramPacket(buf, 0, 1024);
try {
ds = new DatagramSocket(localReceivePort);

} catch (SocketException e1) {
//prompt("本地接收端口已被使用");
System.exit(0);
}
while (true) {
try {
ds.receive(dp);
System.out.println("信息来自:" + this.localReceivePort);
} catch (IOException e) {
ds.close();
e.printStackTrace();
}
String receiveMessage = new String(dp.getData(), 0, dp
.getLength());
System.out.println(receiveMessage);//暂时打印到控制台,一般输出到文件
}
}

本来运行一切正常,但是导出俩次jar包后,再次运行,每次都是一闪就过去了

而不是正常情况的一直监听6000端口..

是什么问题呢?
...全文
61 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
y63964632 2011-09-05
  • 打赏
  • 举报
回复
端口被占用......
y63964632 2011-09-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhouyuqwert 的回复:]
你看先单步调试 从哪跳出来的先找到吧
[/Quote]

郁闷,现在都Run不起来了.....
阳明 to life 2011-09-04
  • 打赏
  • 举报
回复
你看先单步调试 从哪跳出来的先找到吧
y63964632 2011-09-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhouyuqwert 的回复:]
是不是有已经运行的没结束 然后导致端口被占用 发生异常了 然后直接就System.exit(0);结束了
[/Quote]

System.exit(0)前加上一些打印信息,控制台也没有显示出来

但是都没有 打印出来 System.exit(0) 前的一些信息
阳明 to life 2011-09-04
  • 打赏
  • 举报
回复
是不是有已经运行的没结束 然后导致端口被占用 发生异常了 然后直接就System.exit(0);结束了
阳明 to life 2011-09-04
  • 打赏
  • 举报
回复
System.exit(0); 是从这里结束了么

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧