网络编程新手的问题。。。(望大虾能进来看看)

horisly 2005-03-12 02:30:05
我做了一个简单的c/s程序
服务器端listen后,就进入一个无限循环来接收客户的请求。不断accept
并为每一个客户建立一个新的Socket来处理用户请求。

可是,当我运行两个以上的client时,同时向服务器端发送消息,在服务器端打印出来接收到的数据。却只有当第一个client退出后,服务器端才把第二个client的消息打印。

不知如何才能使多个client同时发送消息时,server端能够把所有的消息都打印出来呢?而不是要等到前一个client断开再打印下一个的呢?
...全文
142 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
horisly 2005-03-13
  • 打赏
  • 举报
回复
我已经自己看书,明白了一些。
谢谢大家
horisly 2005-03-12
  • 打赏
  • 举报
回复
就是出现上楼所说的问题了。不知如何解决呢?
ncmj 2005-03-12
  • 打赏
  • 举报
回复
每接收到一个Client请求,就开出一个专门的线程为之服务,直到该Client退出。
注意下线程与主进程之间的通信问题,很可能同时存在2个以上线程的时候,会引起主进程无法接收后面线程的数据。
horisly 2005-03-12
  • 打赏
  • 举报
回复
up
jerry 2005-03-12
  • 打赏
  • 举报
回复
你的SOCKET应为非阻塞的,否则,对其中一个操作时就会停止响应
tudou614 2005-03-12
  • 打赏
  • 举报
回复
GZ
horisly 2005-03-12
  • 打赏
  • 举报
回复
没人来就自己up。。
horisly 2005-03-12
  • 打赏
  • 举报
回复
up
horisly 2005-03-12
  • 打赏
  • 举报
回复
小弟刚学编程不久,对进程还不是很熟悉,我也考虑多线程了,每当有新的client链接时就开辟新的线程来处理该client,可是还是没有解决上面的问题,可能是我对线程还不是很熟悉。
你可以详细点说说怎么做吗?
Cnxiaowei 2005-03-12
  • 打赏
  • 举报
回复
这种东西应该用多线程啊
horisly 2005-03-12
  • 打赏
  • 举报
回复
回复人: songsu(松鼠) ( ) 信誉:100 2005-03-12 13:16:00 得分: 0


这不是什么多线程的问题!

而是一个多用户的问题!楼主问的是不同的数据分开处理的问题!!!!

楼主可以分别给两个用户不同的SOCKET接口,这样双方的数据就可以分开处理了!


**************************
我已经这样做了。它当然是分开处理了,但是却不能做到实时而已,而是要等到一个socket关闭了
才处理另一个socket的数据
songsu 2005-03-12
  • 打赏
  • 举报
回复
这不是什么多线程的问题!

而是一个多用户的问题!楼主问的是不同的数据分开处理的问题!!!!

楼主可以分别给两个用户不同的SOCKET接口,这样双方的数据就可以分开处理了!
jerry 2005-03-12
  • 打赏
  • 举报
回复
用不用多线程倒不是主要问题,使用单线程也照样可以实现以上模型。不过就是为了服务器能快速响应客户端的数据,使用多线程是不错的选择
jerry 2005-03-12
  • 打赏
  • 举报
回复
客户端不是很多用Select模型,多的话应该用完成端口。

另,服务器要处理很多连接。所以不能使用阻塞模式的套接字

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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