看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《deh3215 (黑金屬魂)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : Linux gcc : 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) : NO : 問題(Question): : 要寫一支server如果收到rs232的資料,就透過ethernet傳給client~~ : server收到rs232的資料,client一連上來,就會送給client(送收都印),但client按ctrl+c : client中斷,server也會跟著中斷~~而server在一while迴圈裡 : http://codepad.org/tRePDHcI : server問題一直卡在while那邊,client就只是單純等待收資料~~ : 請對socket有經驗的版友指點迷津~~~~3Q 先感謝CHHsu的提醒,之前send的flags一直都參考範例設為0,沒想到這樣不符合我的要求 n = send(clientfd,buf,BUFFER_SIZE,MSG_NOSIGNAL/*0*/); 這行將0改為MSG_NOSIGNAL 再判斷send的回傳值,為-1即表示c該lient斷線,server可以關閉該client的socket,進入 loop等待client再次連線 if(n == -1) { close(clientfd); break; } 再次感謝CHHsu的幫忙,這問題困擾我很多天,沒想只是改個flags的狀態就好~~^^" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.35.148
EdisonX:good job 06/30 13:54