社区
网络编程
帖子详情
一个客户端需要2个线程吗?
申城谍影
2004-07-25 05:53:54
如果采用非阻塞模式,是不是服务器端要给每个客户端开两个线程?一个recv(),一个send()...否则如果recv(),一直没有消息的话不是不能返回?这时要想发消息怎么办?
有没有一个函数可以设定最高等待时间?,recv()超过一定时间收不到消息就自动返回?
...全文
185
16
打赏
收藏
一个客户端需要2个线程吗?
如果采用非阻塞模式,是不是服务器端要给每个客户端开两个线程?一个recv(),一个send()...否则如果recv(),一直没有消息的话不是不能返回?这时要想发消息怎么办? 有没有一个函数可以设定最高等待时间?,recv()超过一定时间收不到消息就自动返回?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gdy119
2004-07-30
打赏
举报
回复
我觉得应该是服务器端每accept一个socket
and create a thread ,in the thread make use of recv(..)(inbolck)
and then send(..) to every client;
danielzhu
2004-07-30
打赏
举报
回复
HAO
ydfok
2004-07-30
打赏
举报
回复
楼上的
bluebohe(薄荷) 经常回答问题的呀
怎么把他当成动物园里的动物一样看待的呀
哈哈:)
c4313848
2004-07-30
打赏
举报
回复
up
c4313848
2004-07-29
打赏
举报
回复
第一次看到五星的,等下找人来参观,哈哈
NeoBean
2004-07-27
打赏
举报
回复
个人认为完成端口只是一种偏于系统底层的处理机制,真正效率有好高我也不这样认为,Linux没有完成端口这种机制但是它的网络通信效率不比Windows差。Apache与IIS谁的效率高?有没有明确的数据资料来证明?
bluebohe
2004-07-27
打赏
举报
回复
组赛模式不好做啊!,要开的线程太多了
http://blog.csdn.net/bluebohe/archive/2003/11/17/21055.aspx
http://blog.csdn.net/bluebohe/archive/2003/11/18/21056.aspx
NeoBean
2004-07-27
打赏
举报
回复
数据发送基本上无需一个线程单独支持,考虑到线程安全就好。可以用Mutex内核对象完成。
接受可以使用一个单独的线程,通过回掉函数通知上层应用。
// 我个人所有的网络应用都是这么实现的。
zhuhuidong
2004-07-27
打赏
举报
回复
UP,我现在也正学习这方面的知识
DentistryDoctor
2004-07-27
打赏
举报
回复
如果是流量较大,建议使用完成端口,如果是SELECT或Event的话,也就谈不性能了。可以设置发送和接收的超时时间
setsockopt函数可以
flashboy
2004-07-27
打赏
举报
回复
可以设置发送和接收的超时时间
setsockopt函数可以,去查查具体参数吧
mingbao
2004-07-26
打赏
举报
回复
这个主要看你的程序的繁忙程度:如果处理数据时非常繁忙,建议放在线程里做,否则你的程序主界面就会停止响应用户的操作。
whslovexyp
2004-07-26
打赏
举报
回复
我个人认为还是把接收和发送数据处于不同的线程中。
tibet
2004-07-26
打赏
举报
回复
这还要看你的客户端程序对于tcp连接是短连接还是长连接?
而且还要看传输数据量的大小和发送接收次数来决定
sharkhuang
2004-07-25
打赏
举报
回复
select poll
申城谍影
2004-07-25
打赏
举报
回复
呃,上面说错了,是阻塞模式...
这贴子怎么编辑不了?
c#多
线程
socket开发(
一个
服务器对多个
客户端
)
c#语言开发多
线程
socket服务器端程序,实现
一个
服务器同时与多个
客户端
连接对话。
MFC实现多个
客户端
通过服务器进行通信的Socket多
线程
编程
1.基于MFC通过多
线程
实现多个
客户端
同时连接服务器。 2.服务端通过维护一张转发表来实现对
客户端
信息的转发,比如
客户端
A向
客户端
B发送消息,服务器接收到
客户端
A发过来消息内容和
客户端
B信息之后,通过转发表查找到
客户端
B的Socket,将内容转发给
客户端
B,实现
客户端
之间的通信。 3.运行程序时先运行服务端,再运行
客户端
。 4.本程序没有转换编码方式,所以不能传输中文,各位可以自行实现。
基于C++的多
客户端
socket通信
描述: 1 采用C++语言 2 编译环境是code::blocks 3 使用的是非阻塞套接字 功能描述: 1
一个
服务器对多个
客户端
之间进行通信 2 实现多
线程
开发,共包括接收数据
线程
、发送数据
线程
、主
线程
、接收
客户端
连接
线程
、清理资源
线程
。 其中主
线程
负责数据的输入,清理资源
线程
主要负责清理不
需要
的内存空间。 3 可以定向的向某个连接的
客户端
进行通信、同时也可以使用广播的方式向单个
客户端
发送数据
一个
服务器对多个
客户端
的MFC Socket编程示例(实现简单的即时通讯功能)
环境:Windows XP SP3、 VC++ 6.0、 Windows 2003 SDK 使用步骤: 1、下载解压之后,使用VC++ 6.0打开两个工程:
一个
是SocketServer和
一个
ClientSocket工程。 2、首先运行服务器端工程,选默认的端口1008 3、然后运行
客户端
工程,选默认的端口1008和默认的服务器地址 4、再运行多个
客户端
进程 5、如果一切正常,可以每个
客户端
的消息发送,我们可以在服务端和各个
客户端
同步看到消息 实现
一个
服务器对多个
客户端
的关键是,在服务端的使用集合CPtrList类用保存
客户端
的socket对象,思想与Java中的编程思想一样,只不过Java中会使用多
线程
技术,在Vector集合保存
客户端
的socket对象,而MFC框架提供了CSocket类,它是
一个
异步通信的类,所以看上去代码比较Java的多
线程
代码简单的实现了
一个
对多的即时通讯功能。另外,MFC提供了CSocketFile类和CArchive类与CSocket类实现了C++的网络通讯编程功能。 本示例注释非常详细,所有的辅助类都放
一个
util目录中,然后在工程中分了
一个
目录来管理这些辅助类,使用代码非常清晰。手动书写部分的代码是按Java的规范书写,当然其它代码由IDE生成的,所以是MS的风格,所以当你看代码时,只要是使用“骆驮命名法”的方法都是本人书写的功能性代码。 参看的思路:在服务端要从回调方法onAccept读起;而
客户端
代码主要从OnSendButton方法读起,即可理解整个代码的意思。 阅读对象:具有Java的Socket编程经验的人员,并且希望能够书写出比Java效率更高的即时通讯程序的人员
C++编写 win32控制台下 Socket通信 多
线程
聊天室 服务器
客户端
文件包括:服务器项目、
客户端
项目、说明文档 C++语言编写,SOCKET套接字通信,分服务器和
客户端
,多
线程
模型,Win32控制台。 首先聊天室分为服务端和
客户端
,通过TCP连接通信。运行顺序为: 1.首先打开服务服; 2.打开
客户端
,用户输入名字,连接到服务端后得到
一个
ID; 3.用户可以看到所有在线用户和所有频道,用户间可以单独聊天,也可以进入聊天频道,或者自己创建
一个
频道。 4.聊天频道的管理员为创建者,创建者可以剔除其他用户、禁止特定用户加入(黑名单)、解散频道、转让频道管理员身份。
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章