首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络协议 >

CSocket 服务端,多线程 receive send 有关问题 请高手帮忙

2012-03-19 
CSocket 服务端,多线程 receivesend问题 请高手帮忙当一个socket对象 成功连接之后,我想用 当前线程作为se

CSocket 服务端,多线程 receive send 问题 请高手帮忙
当一个socket对象 成功连接之后,我想用 当前线程作为send,新开辟一个线程,把连接成功的socket对象传入该线程,作为receive, 会因为共用一个socket对象 引起冲突吗?

如果会引起冲突,那么实现这样的一个服务端,该怎么做呢?


[解决办法]
也就是自己给自己发信息,同一个SOCKET对象,倒真没试过。

一般做法是:
一个SOCKET用来send,另一个用来receive。

也就是说,LZ可以在两个线程中分别创建SOCKET对象,其中一个用来发送信息,另一个用来接收信息。
[解决办法]
如果是两个线程(这两个线程属于一个进程)都向一个 SOCKET 写入, 只要是互斥操作的话 应该是可以的

但楼主是 两个线程(这两个线程属于一个进程), 其中一个向 SOCKET 写入, 另一个从 SOCKET 读取, 这也就是 SOCKET 向自己发消息, 我没有试过, 也不知道行不行。 楼主不妨自己写个试一下

还有 要是两个线程(这两个线程属于一个进程), 并且该进程 创建两个 SOCKET , 一个SOCKET 负责写入, 另一个 SOCKET 负责读取, 不知道这样行不行??? 我觉得应该可以
[解决办法]

探讨

一般做法是:
一个SOCKET用来send,另一个用来receive。


[解决办法]
探讨
引用:

一般做法是:
一个SOCKET用来send,另一个用来receive。



貌似一般不是这样。同一个socket既负责发送数据到对端(send),也负责接收对端发过来的数据(receive)。
TCP连接是全双工的;UDP通信也常常是一个端点既做收也做发。


[解决办法]
不冲突的
[解决办法]
同一个socket,读写是可以同时进行的,不需要加锁。

另,上面很多人说,读一个socket,写又另一个socket,这种人绝对没写过真正的网络应用程序。

热点排行