多线程Socket连接及同步与异步的问题

liounzhou 2004-09-28 04:35:05
所有的客户端都会将数据发送到Socket服务程序的指定端口(如8000),当数据量(即客户端同时的连接数)过多时,会出现数据无法发送到Socket服务程序的现象.请问是否用线程池NIO可以解决这个问题?
还有,我对套接字中所谓的同步与异步不太明白,有人可以说明一下吗?
...全文
298 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
liounzhou 2004-10-11
  • 打赏
  • 举报
回复
其实最关心的还是到底是什么原因导致服务器端不再监听数据,这种出现的机率有点随机啊。有时重起服务器可以维持一到两天,有时几十分钟就挂了。数据流量都是比较平均的。
liounzhou 2004-10-11
  • 打赏
  • 举报
回复
to icewolf_li(冰狼) :
无法发送数据到服务器端的情况,经常不是发生在峰值时啊。
httruly 2004-10-11
  • 打赏
  • 举报
回复
我觉得是你接收后的处理有问题...
yy2008vv 2004-10-07
  • 打赏
  • 举报
回复
在两边程序即客户端和服务端程序都是可控制的情况下:
1。在服务端建线程池
2。客户端发合法连接请求
3。服务端确认连接请求
togetherj 2004-10-07
  • 打赏
  • 举报
回复
我和楼主有一样的疑问,如果为一个客户端创键一个线程那么这个线程始终要别这个客户端占用,知道这个客户端的TCP连接断开,那么即使这个线程是从线程池中去的,那线程池就没有意义了,因为谈不上线程的池化,请问高手是不是用异步的IO可以解决啊.
江南愚子 2004-09-29
  • 打赏
  • 举报
回复
客户端向服务器提交一个请求,若一直等待服务器返回结果不做别的事,那就是同步通信;若不等待服务器返回结果,而是去做别的事,当服务器返回结果时通过某种机制接收并处理结果,那就是异步通信。
icewolf_li 2004-09-29
  • 打赏
  • 举报
回复
有可能是网络带宽或网卡的限制。以前我们做压力测试模拟多客户端socket的时候也是如此,应用没有达到压力极限,网卡受不了了,呵呵。
由月 2004-09-29
  • 打赏
  • 举报
回复
数据无法发送到Socket服务程序未必是因为线程太多的原因啊
prok 2004-09-29
  • 打赏
  • 举报
回复
up
RomandAccessFile 2004-09-29
  • 打赏
  • 举报
回复
对于数据这块要保证同步,可以使用Serializable,也就是序列化
nwpulipeng 2004-09-29
  • 打赏
  • 举报
回复
混分
qqbz 2004-09-28
  • 打赏
  • 举报
回复
1、一个客户端上来,开一个线程。
2、看你有多少客户端上来了,可以用线程池
3、套接字的同异步由jvm控制,你可以不必操心。
newste 2004-09-28
  • 打赏
  • 举报
回复
帮你顶下

62,614

社区成员

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

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