服务器端如何同时监听多个Socket啊?ss10001 = new ServerSocket(10001);
client10001 = ss10001.accept();
ss10002 = new ServerSocket(10002);
client10002 = ss10002.accept();
ss10003 = new ServerSocket(10003);
client10003 = ss10003.accept();这样不可能啊!
运行到第一个accept就停了啊!
client10001 = ss10001.accept();
ss10002 = new ServerSocket(10002);
client10002 = ss10002.accept();
ss10003 = new ServerSocket(10003);
client10003 = ss10003.accept();这样不可能啊!
运行到第一个accept就停了啊!
解决方案 »
- 抓取网页时,如何自定义header?
- 哪个高手谁能拿代码调出暴风影音????
- 白天在学校,晚上在外面,如何搞开发?能不能把proj上传到通用的服务器上?能不能使用类似vss之类的 工具?
- 自从学.net就发觉自己整天在学新技术,新名词了,很少有时间把精力集中到具体业务编程上。
- 局域网内将客户端的文件拷贝到服务器端
- 如果有1办公局域网、1网吧局域网,现老板要看两个网(文件和收银情况)如何管理
- 菜鸟求教,请多关照
- 请问哪里可以下载jdk1.4
- 请问在win2000下该如何设置jdk的环境变量?
- RandomAccessFile 传输文件时出错
- (不给分是王八)哪位大侠有关于BEA WeLogic日志的资料? 格式、存储地方什么的,谢谢啦~ 急用啊!
- 谁有java视频课件
如果这是没有用户连接上来就一直等待。所以应该像楼上说的 用一个 循环来接受多个用户的连接,每接到一个客户端的连接就创建一个线程去服务,然后立即进入下一个等待。如果监听多个端口就开多个线程,每一个线程都循环等待请求同样对每一个连接开启新线程去服务。
能不能写一个示例代码段让小弟看看
Thread s10000Thread = new Thread(){
public void run()
{
try {
ss10000 = new ServerSocket(10000);
client10000 = ss10000.accept();
........
}
}
}
这样吗?
sk = new socket(PORT);
sk.accept();
}在你的程序里调用这个THread
Thread t1 = new ThreaD(5000);
T1.START();
server = new SocketServer();
Socket request = server.accept(); //这个方法会阻塞,一直等到有Client连接才会继续执行
ClientRequestThread requestThread = new ClientRequestThread(request);
requestThread.start();
ClientRequestThread:客户端连接处理线程。处理客户端发送过来的数据
run() {
DataInputStream dataInput = new DataInputStream(request.getInputStream())
dataInput.readInt(); //这个方法会阻塞,一直等到当前的request发送过来数据
}
ClientThread://客户端
Socket client = new Socket(serverIp, serverPort); //当客户端执行这个语句的时候Server端的accept()方法才会返回,要不然就一直等待在这个方法,你的Server程序不会往下执行。
new 类(端口1);
new 类(端口2);
.....................