當前位置:編程學習大全網 - 編程軟體 - LINUX網絡編程TCP服務器 客戶端 有亂碼怎麽解決?

LINUX網絡編程TCP服務器 客戶端 有亂碼怎麽解決?

解決辦法:

1.在客戶端n=read(socketfd,buff,1023);代碼之前加上memset(buff,0,sizeof(buff));,這是保證收到較短數據(使用TCP妳不能保證每次接收的數據和發送的數據時等長的),打印也是正確的;

2.將客戶端buff[n+1]+='\0';修改為buff[n]='\0';,這是因為n是下標,已經是最後壹個位置了;

3.將服務器端buff[n+1]+='\0';修改為buff[n]='\0';,這是因為n是下標,已經是最後壹個位置了,而且和第2)壹樣,那個加號也要去掉,應該是筆誤吧;

4.最大的問題,將服務器端write(connectfd,buff,1023);,妳怎麽能夠保證收到1023個字符呢?也應該將while中條件移出作為WHILE中的壹條語句,而且加上前面所述的memset語句,而將這裏的write(connectfd,buff,1023);修改為write(connectfd,buff,strlen(buff))。

祝***同進步!

  • 上一篇:hiphop有幾大元素
  • 下一篇:機器人教育機構為什麽離職率高
  • copyright 2024編程學習大全網