我對在Unix上用C寫入/讀取一個套接字的字節數有些懷疑。我習慣於發送1024個字節,但是當我發送短字符串時,這實際上太多了。我從文件中讀取一個字符串,我不知道這個字符串有多少個字節,它每次都可以變化,它可以是10,20或1000.我只知道它是< 1024。所以,當我編寫代碼時,我不知道在客戶端讀取的字節大小(在服務器上,我可以使用strlen()
)。因此,無論我從文件讀取的字符串的長度如何,總是讀取最大字節數(本例中爲1024)的唯一解決方案?我應該讀/寫多少個字節的套接字?
例如,使用此代碼:
read(socket,stringBuff,SIZE);
不會是如果SIZE
是10,而不是1024,如果我想讀一個10字節的字符串更好?
'recv()'返回通過套接字接收的字節數。 – timrau 2014-11-03 02:38:09
請不要使用一個問題來宣傳不同的問題。 – 2014-11-03 02:39:27
@timrau是的,我知道,也讀過,但如果我沒有錯,當你寫一個讀取調用時,你應該寫一些像read(socket,stringBuff,SIZE)的東西,並且在SIZE中你必須指定你想閱讀的字符數。 Whant我的意思是,如果我讀取了10個字符串,如果SIZE是10而不是1024,那麼它會更好嗎? – testermaster 2014-11-03 02:40:14