這個問題我是在論壇看到的類似的問題,當時回復了他。。后面仔細想想又好像自己也不是太清楚。如是又看了一下tcp/ip詳解。。。。
順便自己做了一下實驗,發現發送一些數據后客戶端就卡死了(阻塞套接字),服務器只接受連接,不取出系統緩存的數據。
我想估計是服務器的對應套接字的buffer用完了,所以內核不在接收數據了,導致客戶端不能夠發送數據。那這樣看來,客戶端想不停的發送數據,只有不斷建立連接才可以,在一個連接不停發送數據是不能的事情。
后面看了一下buffer 和 窗口大概類似,但不等于一會事。
比喻本機上窗口是25000,但接收buffer 8192.. 而且看tcp/ip 2貌似buffer還是可以提高他的上限。
以前覺得socket send 貌似就等于tcp/ip協議,現在看來真好傻,好天真。。
socket 函數只是插口層。。以前不明白為什么插口,現在明白了,就是用應用層鑰匙,通過這把鑰匙來跟下面協議打交道。。
posted on 2013-12-18 22:26
小魚兒 閱讀(675)
評論(0) 編輯 收藏 引用