社区
网络编程
帖子详情
多线程SOCKET通讯
iamzxx
2009-09-14 04:13:56
最近写一个SOCKET通讯的软件.
其中有一个通讯类, 该类每次实例化后, 都会创建2个线程.
这样一来, 这个类多次实例化后, 就会有2N个线程,
有什么办法, 让单个实例的2个线程互相通讯, 与其它实例的线程无关呢?
--
看了JAVA,有线程组的慨念, 哪位知道VC有同样的东西吗
...全文
212
12
打赏
收藏
多线程SOCKET通讯
最近写一个SOCKET通讯的软件. 其中有一个通讯类, 该类每次实例化后, 都会创建2个线程. 这样一来, 这个类多次实例化后, 就会有2N个线程, 有什么办法, 让单个实例的2个线程互相通讯, 与其它实例的线程无关呢? -- 看了JAVA,有线程组的慨念, 哪位知道VC有同样的东西吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Qt-UI
2009-09-15
打赏
举报
回复
单实例内的通讯使用随机生成的端口进行通讯 新实例使用例外一对 这样多实例间就不会访问到了
stjay
2009-09-15
打赏
举报
回复
[Quote=引用 6 楼 iamzxx 的回复:]
楼上,我原来说的不够准确, 我说的类是笼统的说法, 实际是这个初始类又调用了其它的类去创建线程,有多个通讯类,如SOCKETDX,SOCKETTX,SOCKETRX.
目的是想让 这个初始类及所关联的类在实例化后进行通讯, 而不与另一次实例进行通讯.
[/Quote]
将 全局变量, 临界区 放进类里,
做成成员变量
每个实例的成员变量都互不相干的
iamzxx
2009-09-15
打赏
举报
回复
[Quote=引用 8 楼 xdljf 的回复:]
通信类一般搞一个线程就摆平了吧,为什么搞两个?
[/Quote]
与一台主机相连时,一个线程是发送数据, 一个线程RECV接收数据.
与多台主机相连时, 就产生了多个实例
iamzxx
2009-09-15
打赏
举报
回复
谢谢各位给的思路, 本人个人感觉PostThreadMessage比较适合在界面线程中传递信息, 假如是传递2个线程间的同步信息, 会不会产生因为线程优先级,线程等待等原因, 造成同步失败?
xdljf
2009-09-14
打赏
举报
回复
通信类一般搞一个线程就摆平了吧,为什么搞两个?
dirdirdir3
2009-09-14
打赏
举报
回复
可以用主线程作为周转,主线程里面存一个数组,有这两个线程的id,需要通讯的时候发消息给主线程,并附上自己的ID,然后主线程查找后发给另外一个线程...........
iamzxx
2009-09-14
打赏
举报
回复
楼上,我原来说的不够准确, 我说的类是笼统的说法, 实际是这个初始类又调用了其它的类去创建线程,有多个通讯类,如SOCKETDX,SOCKETTX,SOCKETRX.
目的是想让 这个初始类及所关联的类在实例化后进行通讯, 而不与另一次实例进行通讯.
gotooker
2009-09-14
打赏
举报
回复
楼主,你可以照原来的思路啊,多个实例并不影响你的流程啊。
你把原来的全局变量改为类的成员变量,每个对象初始化一个临界区,不久搞定了。
iamzxx
2009-09-14
打赏
举报
回复
写的是工作线程, 主要是传递一些SESSION, COUNT之类的简单数据.
原本只有一个实例时,使用的是全局变量, 读写时使用临界区. 觉得简单.
多个实例的情况下就用不上了. PostThreadMessage会不会太复杂?
zhaohongbo83
2009-09-14
打赏
举报
回复
可以呀,每一个实例都有一个进程共享空间,在这里线程之间可以相互通信,就像LS所说的PostThreadMessage来进行通讯!
Dingnifei123
2009-09-14
打赏
举报
回复
帮顶,
fishion
2009-09-14
打赏
举报
回复
每个线程句柄都是不一样的,创建的时候保存线程句柄,再用PostThreadMessage来进行通讯
基于
Socket
的
多线程
TCP
通讯
软件
从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口。本作品是一款基于
Socket
的
多线程
TCP即时
通讯
软件, 软件功能丰富,支持单对单、多对单以及多对多的
通讯
模式,能够满足不同用户间多样化的沟通需求。:在
多线程
模型中,可以快速响应用户的请求,因为不同线程可以并行处理不同的任务,减少了等待时间。使用处:小范围使用,如小型公司,实验室等等,在节约资源的同时,满足加密即时
通讯
需求。功能:可以实现单对单,多对单,多对多的即时
通讯
。
VC下
Socket
多线程
通讯
类
VC下
Socket
多线程
通讯
类
/*
public:
void SendServerUDP(CString NewInfo);
void SendClientUDP(CString NewInfo);
CString GetLocalIP();
CString GetLocalHost();
int GetUDPPort();
bool SetUDPIP(CString NewIP);
bo
socket
多线程
并发异步
通讯
/**//*作者:雷云email:bowaytec@yahoo.com.cnqq:52192976日期:2007-5-20一下代码可供linux爱好者提供借鉴,如有不足之处请斧正project:
socket
多线程
异步
通讯
例程*/#includestdio.h>#includestdlib.h>#includestring.h>#includeunistd.h>#includesys/socke
Socket
通讯
与
多线程
处理-完整实例
开发一段程序来模拟
Socket
通讯
和数据传输,
socket
通讯
需要注意的几个问题:
Socket
API的合理使用,以及关于
socket
option参数的设计和优化
socket
交互中,有关阻塞/异常处理问题
socket
通讯
对于server端而言,
多线程
或者线程池的合理使用 数据流成帧技术的使用 本段程序,如果在production环境使用,还有很多需要优化和适配的地方,如下...
第七篇:linux
多线程
及其在
socket
通讯
中的应用
更重要的是,当被分离的线程终止时,其资源将自动被回收,而不需要主线程或其他任何线程来显式地调用。例如,处理客户端请求的服务器线程可能经常被分离,因为服务器通常希望同时处理多个请求,并且不需要等待每个请求都处理完毕才继续。来分离每个处理客户端连接的线程是合适的。在上面的代码中,由于服务器需要同时处理多个客户端连接,并且对每个连接的处理都是独立的,因此使用。会阻塞调用它的线程,直到指定的线程终止,并允许获取该线程的返回值和/或检查其终止状态。:这是一个指向函数的指针,该函数是新线程启动后要执行的函数。
网络编程
18,356
社区成员
64,161
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章