Socket和TCPIP協議的問題 -开发者知识库

Socket和TCPIP協議的問題 -开发者知识库,第1张

這個問題產生於編程中遇到的幾個問題:
1、使用TCP的Socket發送數據的時候,會出現發送出錯,WSAEWOULDBLOCK,在TCP中不是會保證發送的數據能夠安全的到達接收端的嗎?也有窗口機制去防止發送速度過快,為什么還會出錯呢?

2、TCP協議,在使用Socket發送數據的時候,每次發送一個包,接收端是完整的接受到一個包還是怎么樣?如果是每發一個包,就接受一個包,為什么還會出現粘包問題,具體是怎么運行的?

3、關於Send,是不是只有在非阻塞狀態下才會出現實際發送的比指定發送的小?在阻塞狀態下會不會出現實際發送的比指定發送的小,就是說只能出現要么全發送,要么不發送?在非阻塞狀態下,如果之發送了一些數據,要怎么處理,調用了Send函數后,發現返回值比指定的要小,具體要怎么做?

4、最后一個問題,就是TCP/IP協議和Socket是什么關系?是指具體的實現上,Socket是TCP/IP的實現?那么為什么會出現使用TCP協議的Socket會發送出錯(又回到第一個問題了,汗一個)

實在是有點暈了,如果我的問題有不清楚的地方,或者分數有問題,歡迎指出,謝謝

7 个解决方案

#1


1 應該是你的緩沖區不夠大,
tcp是流,沒有界限.也就所所謂的包.
3 阻塞也會出現這種現象,出現后繼續發送沒發送出去的.
4 tcp是協議,socket是一種接口,沒必然聯系.錯誤取決於你使用接口的問題,跟tcp沒關系.

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复