[問題] socket recv buffer

看板LinuxDev作者 (Another Day...)時間17年前 (2007/09/13 15:38), 編輯推噓2(207)
留言9則, 4人參與, 最新討論串1/2 (看更多)
想請大家幫忙看一小段unix socket程式 nLen = recv(rsock, szReadBuffer, sizeof(szReadBuffer), 0); if ( nLen > 0) { printf("Client Request: %s \r\n", szReadBuffer); szReadBuffer[nLen] = '\0'; } else { printf("Recv Error"); } 我利用recv來收client端所送來的資料 nLen是5 但在printf時 szReadBuffer卻沒有顯示任何東西 只顯示 Client Request: 想請問有人知道這是為什麼嗎? ps. 此為server端的程式, 在unix環境下執行 client是用java 在windows下面執行的 先謝謝大家!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 75.6.237.125 ※ 編輯: Racci 來自: 75.6.237.125 (09/13 15:39)

09/13 16:13, , 1F
收到空白嗎?妳可以用strlen(szReadBuffer)來check看看
09/13 16:13, 1F

09/13 16:16, , 2F
我用strlen長度是5 剛剛用for loop一個一個印出來
09/13 16:16, 2F

09/13 16:17, , 3F
不過是亂碼, 剛剛網路上查, 好像是要用flush, 可是關於flush
09/13 16:17, 3F

09/13 16:18, , 4F
的sample code好少 有哪位可以指導一下嗎? 感激不盡!!
09/13 16:18, 4F

09/14 11:03, , 5F
試試memset?
09/14 11:03, 5F

09/14 18:35, , 6F
strlen回5表示收到的5個字元都不是0x00,那印不出來還真怪,哈
09/14 18:35, 6F

09/15 14:27, , 7F
我有先做memset了說 我後來有一個字元一個字元印出來
09/15 14:27, 7F

09/15 14:28, , 8F
前兩各是亂碼 後面三位是我的資料 很奇怪 找不到原因
09/15 14:28, 8F

09/15 14:28, , 9F
有朋友說可以試試flush, 有人用過flush嗎 搞不懂要怎麼用
09/15 14:28, 9F
文章代碼(AID): #16wEaDDQ (LinuxDev)
討論串 (同標題文章)
文章代碼(AID): #16wEaDDQ (LinuxDev)