Re: [問題] client按ctrl+c,server會中斷~~
※ 引述《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
06/30 13:54, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):