多个线程使用同一个打开的socket发送,数据会不会混淆
答案:2 悬赏:0 手机版
解决时间 2021-02-11 17:36
- 提问者网友:黑米和小志
- 2021-02-11 13:51
多个线程使用同一个打开的socket发送,数据会不会混淆
最佳答案
- 五星知识达人网友:像个废品
- 2021-02-11 15:11
举个例子
socket。send(“a”)
socket。send(“a”)
多线程里面
socket。send(“b”)
很有可能会出现
socket。send(“a”)
socket。send(“b”)
socket。send(“a”)
的情况
socket。send(“a”)
socket。send(“a”)
多线程里面
socket。send(“b”)
很有可能会出现
socket。send(“a”)
socket。send(“b”)
socket。send(“a”)
的情况
全部回答
- 1楼网友:痴妹与他
- 2021-02-11 15:40
多个线程同时使用一个socket发数据,是可能出现混淆数据的,主要原因是多个线程填充发送缓冲区的时候,可能出现被打断的情况,导致数据被分割填入缓冲区。
解决办法一个是采用发送队列,多线程有序发送。还一个是把socket的发送缓冲大小设为0,采用直接发送。但第二个方法只适合每次发送数据不大于1500的情况
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯