首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

当地网络编程实践

2013-11-08 
本地网络编程实践?1 已经实现一个基本的多线程服务器,并发处理多个客户请求。(服务端线程池使用4000个,客户

本地网络编程实践

?

1 已经实现一个基本的多线程服务器,并发处理多个客户请求。(服务端线程池使用4000个,客户端启动4000个连接,连接数大会有出异常的可能)

启动多个socket客户端 连接多线程服务器,当数量太大时,出现了java.net.BindException: Address already in use: connect
?异常,代码如下:

for (int i = 0; i < 4000; i++) {
???socket = new Socket("127.0.0.1", 8888);
???out = new PrintWriter(socket.getOutputStream(), true);
???out.println(i + "号");
??}

new Socket的时候就不会去找未用端口号吗?客户端 端口号如何分配

2 使用nio实现一个多线程服务器,并发处理4000多个客户端请求。出现了java.net.SocketException: No buffer space available (maximum connections reached?): connect,原因是操作系统socket资源耗尽。

有时候也会出现端口已被占用的情况,同上。因为new socket的时候是随机分配端口号,重复了。

?

热点排行