社区
通信技术
帖子详情
对于同一个SOCKET,能否起多个线程同时读、写呢?如何实现?
格利高里
2002-03-30 06:07:16
如上。最好一个例子
...全文
388
8
打赏
收藏
对于同一个SOCKET,能否起多个线程同时读、写呢?如何实现?
如上。最好一个例子
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ylb_and_xy
2002-04-01
打赏
举报
回复
不管怎么说,多个线程同时读或着写同一个资源都是很不安全的。
网络咖啡
2002-04-01
打赏
举报
回复
读是不可以的,读过一次就被清空了。
不过可以把第一次读到的内容放到数组或者变量里面不就实现共享了吗?
zx_sanjin
2002-03-31
打赏
举报
回复
拿网络的传输速度同机器的处理速度相比吗?
wenw
2002-03-31
打赏
举报
回复
没这么快吧.
只有通过控件数组来解决.
class
2002-03-31
打赏
举报
回复
写应该可以吧,至于读可能会有问题
rovoboy
2002-03-31
打赏
举报
回复
不可以的吧?听说SOCKET不是线程安全的。
neccui
2002-03-31
打赏
举报
回复
是可以同时读写的。
同时一个recv(或send)操作均为原子操作。
同样的accept也是原子操作。
格利高里
2002-03-30
打赏
举报
回复
算了,我知道了,是可以的。
多
线程
问题:为什么不应该使用多
线程
读
写
同一个
socket
连接?
为什么不应该使用多
线程
读
写
一个
socket
连接
socket
多
线程
同时使用
同一个
sockt_fd会出现什么情况?
如果
多个
线程
同时使用
同一个
socket
_fd,可能会出现以下问题: 数据混乱:由于
多个
线程
同时向
socket
_fd
写
入数据,会导致数据混乱。因为不同
线程
的
写
入顺序和速度不同,有可能
多个
线程
的数据在
socket
中交错出现,导致数据丢失或无法解析。 状态不一致:
多个
线程
同时对
同一个
socket
_fd进行状态修改,可能会导致状态不一致。例如,一个
线程
关闭了
socket
_fd,但另一个
线程
仍然在试图向...
客户端app
多个
线程
对一个
socket
发送数据
客户端一般是一个发送
线程
,一个
socket
多个
发送
线程
竞争一个
socket
没什么意义,不会提高发送速度,因为
socket
只有一个,只要
socket
在发送一个
线程
的数据时,该
socket
就被占用了,是不会响应其他
线程
的发送数据请求的。除非客户端维护有
多个
socket
。 服务端使用多
线程
向
多个
客户端同时发送数据是因为服务端维护着
多个
socket
,每个
socket
对应一个客户端session连接。 参考: 客户端:多
线程
使用单个
SOCKET
发数 请教:多
线程
使用
同一个
socket
进行数据收发会出现什么问题?
socket
同时
读
写
问题
如果是
多个
线程
同时
写
socket
,那么在临界区里工作的
线程
为了保证数据包的完整发送,必须循环发送等待,直到数据都发送到系统缓冲区才能离开临界区。 而这样就导致
socket
的行为与阻塞方式发送无异,发送效率因此而被限制。 所以一个好的tcp
socket
处理框架,应该是只有一个
线程
来负责数据的收发,从而避免那些无穷无尽的同步问题。 如果需要
多个
线程
同时
读
访问或
写
访问
同一个
tcp
socket
,
一个
读
线程
,一个
写
线程
同时操作一个套接字
一个
读
线程
,一个
写
线程
同时操作一个套接字是没问题的,但必需主意一点:做错误处理时非法同步的准备,即保证在出现
SOCKET
错误时只有一个处理函数被调用,而不是2个
线程
同时调用2个,否则将发生问题
通信技术
4,356
社区成员
28,926
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章