在socket程式設計時如果客戶端發給伺服器端的資料太大

2021-12-22 15:57:41 字數 1563 閱讀 9221

1樓:

資料太大的話一般都會分包傳送,tcp和udp包都有最大的上限。如果伺服器端收不到就不會執行的話要用tcp協議。

傳輸層:

對於udp協議來說,整個包的最大長度為65535,其中包頭長度是65535-20=65515;

對於tcp協議來說,整個包的最大長度是由最大傳輸大小(mss,maxitum segment size)決定,mss就是tcp資料包每次能夠傳

輸的最大資料分段。為了達到最佳的傳輸效能tcp協議在建立連線的時候通常要協商雙方的mss值,這個值tcp協議在實現的時候往往用mtu值代替(需

要減去ip資料包包頭的大小20bytes和tcp資料段的包頭20bytes)所以往往mss為1460。通訊雙方會根據雙方提供的mss值得最小值

確定為這次連線的最大mss值。

ip層:

對於ip協議來說,ip包的大小由mtu決定(ip資料包長度就是mtu-28(包頭長度)。 mtu值越大,封包就越大,理論上可增加傳送速率,但

mtu值又不能設得太大,因為封包太大,傳送時出現錯誤的機會大增。一般預設的設定,pppoe連線的最高mtu值是1492, 而乙太網

(ethernet)的最高mtu值則是1500,而在internet上,預設的mtu大小是576位元組

2樓:

一般客戶端資料量很大時,伺服器開多執行緒接收或用udp吧

我在做一個c/s socket程式設計,在一臺電腦上客戶端和伺服器之間可以正常傳送資料,兩臺就連線失敗了。

3樓:空氣手勾手

兩臺電腦必須都是鐵通的,必須都沒有在內網(沒有使用路由器)。才能連通

4樓:匿名使用者

ping不通有可能是有安全裝置禁ping了,用telnet 伺服器ip和埠檢查網路環境

5樓:

首先要保證相互能ping通,你這種單向ping通,可能是不通的一方有防火牆,例如windows自帶的防火牆,或防毒軟體所帶防火牆,需要關掉。

6樓:匿名使用者

看看boost raknet 什麼的

7樓:匿名使用者

你得確保你得ip地址是否正確

j**a的socket程式設計。客戶端下線,伺服器端怎麼才能知道有什麼方法嗎

8樓:敖強林

把資料封裝成一個物件,裡面有資料的type,有文字資料等,type可以是login logout message refersh ,在服務端switch()判斷到底是什麼資料,跟你普通發資料沒什麼不同,但這樣做更方便

9樓:匿名使用者

用探測的方式看使用者是否還有訪問的流量,如果沒有可以認為是使用者已經退出。

10樓:匿名使用者

客戶端下線之前先給伺服器傳送一個字串,伺服器接受到後分析這個字串然後再執行指定的操作。

11樓:好好學生不打架

客戶端下線時向伺服器傳送一個特定的資料唄

同志,請問socket程式設計客戶端連線多個伺服器的問題你是

朋友是tcp協議的嗎?你這樣的情況可以把客戶端當做伺服器用啊 因為客戶端每連線一次伺服器 都要不同的ip和埠號 這樣理論上你伺服器多的話 就要啟動多個客戶端 也許 就那麼幾句 c語言socket程式設計,伺服器和一個客戶端連線時,伺服器能正常收到資訊,2個以上就出現bug了 100 設定監聽sock...

客戶端在開啟金蝶KIS專業版12 1時提示如下圖,修復後無效,求大師指點迷津

我一年這個提示肯定就是win7的作業系統 系統不支援 最好安裝xp 或者 win732位旗健版的 尊敬bai 的客戶,您好 完整的問題描 du述應包括zhi產品 版本 模組等資訊dao,您提回供的資訊不全,我們無法做 安裝補丁,p開頭的補丁,如果是正版的,你售後服務,讓他們把5個補丁給你們安裝一下。...

在使用客戶端傳送郵件提示forbid to send spam mail,如何解決

forbid to send spam mail的含義是 禁止傳送垃圾郵件。該問題有可能是因為你的郵箱賬戶被不法分子盜用,用於傳送垃圾郵件,建議更換郵箱密碼並增強密碼強度。另一種可能是你傳送的郵件被系統判定為垃圾郵件,檢查近期傳送的郵件歷史即可。您好,如果在使用outlook outlook exp...