亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 8563 | 回復(fù): 13
打印 上一主題 下一主題

TCP多線程向同一個socket發(fā)送數(shù)據(jù),是否可能導(dǎo)致破壞數(shù)據(jù)的完成性? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-01-30 21:55 |只看該作者 |倒序瀏覽
如:
線程1:
  while ()
    {
      sendmsg(fd, "123456789");
         ....
     }
線程2:
   sendmsg(fd, "abcdefg")

是否可能導(dǎo)致接收端收到如下數(shù)據(jù)?

  "1234abcd56789efg"

最關(guān)鍵的是,如果線程1中的數(shù)據(jù)是如 |類型|長度|數(shù)據(jù).....| 這種結(jié)構(gòu), 當(dāng)出現(xiàn)如上的情況時可能無法解析收到的數(shù)據(jù),此時該如何處理?

補(bǔ)充一點: 可能是非阻塞發(fā)送的

[ 本帖最后由 morris2600 于 2010-1-30 22:01 編輯 ]

論壇徽章:
0
2 [報告]
發(fā)表于 2010-01-30 22:05 |只看該作者
當(dāng)然會亂!

論壇徽章:
0
3 [報告]
發(fā)表于 2010-01-30 22:14 |只看該作者

回復(fù) #2 sunlan 的帖子

那這種情況下該如何解決? 謝謝!

論壇徽章:
1
申猴
日期:2014-02-11 14:50:31
4 [報告]
發(fā)表于 2010-01-31 13:48 |只看該作者
不會,一般對文件的操作是有鎖的。這跟printf()一樣的。

論壇徽章:
0
5 [報告]
發(fā)表于 2010-01-31 16:07 |只看該作者
回復(fù) 4# chenzhanyiczy

參見:
http://www.72891.cn/thread-1651609-1-1.html
   
那個鎖不保證不亂的。
要想不亂,可以改內(nèi)核的代碼,使得能夠在send一個一定小的塊的時候是原子的,如同pipe那樣的處理。

論壇徽章:
1
黑曼巴
日期:2020-02-27 22:54:26
6 [報告]
發(fā)表于 2010-01-31 16:32 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽

論壇徽章:
0
7 [報告]
發(fā)表于 2010-01-31 16:39 |只看該作者
回復(fù)5樓:

請問版主,即使能夠保證send一個一定小的塊的時候是原子的。tcp層的分包機(jī)制會出現(xiàn)樓主說的哪 ...
c/unix 發(fā)表于 2010-01-31 16:32


你考慮的對。
即使保證了SEND對一定小塊數(shù)據(jù)的不拆分也不一定可以。我沒有詳細(xì)想。
這個操作方式本來就是扯淡的。
如同你老婆在美國,你和你兒子給她打電話。撥號接通了就是建立了一個TCP SOCKET.
你和你兒子同時說話,你老婆是可能聽亂了的。
解決方法,電話放小屋,門上鎖。你進(jìn)去說一句,出來后在讓你兒子進(jìn)去說。這個不亂。

論壇徽章:
0
8 [報告]
發(fā)表于 2010-01-31 18:08 |只看該作者
你考慮的對。
即使保證了SEND對一定小塊數(shù)據(jù)的不拆分也不一定可以。我沒有詳細(xì)想。
這個操作方式本來 ...
思一克 發(fā)表于 2010-01-31 16:39



   
學(xué)習(xí)了!

論壇徽章:
0
9 [報告]
發(fā)表于 2010-01-31 22:31 |只看該作者
回復(fù)5樓:

請問版主,即使能夠保證send一個一定小的塊的時候是原子的。tcp層的分包機(jī)制會出現(xiàn)樓主說的哪 ...
c/unix 發(fā)表于 2010-01-31 16:32


我又想了,應(yīng)該沒有問題的。

論壇徽章:
1
黑曼巴
日期:2020-02-27 22:54:26
10 [報告]
發(fā)表于 2010-01-31 22:43 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP