Re: [問題] client按ctrl+c,server會中斷~~

看板C_and_CPP作者 (黑金屬魂)時間11年前 (2013/06/29 17:04), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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

06/30 13:54, , 1F
good job
06/30 13:54, 1F
文章代碼(AID): #1HpgC9J2 (C_and_CPP)
文章代碼(AID): #1HpgC9J2 (C_and_CPP)