三丶TCP處理客戶端異常與正常關閉情況

2021-08-18 10:34:57 字數 1015 閱讀 3173

這個問題在tx 面試的時候問過我。 不過當時demo並沒有注意這個問題, 還好面試官換問題了。。

一: 正常關閉:

如果客戶端是主動申請close , 會傳送一串byte數 為0的資料到伺服器,伺服器就會收到count個數為0,則表示正常關閉。此時伺服器正常操作close

(這裡有個問題是,即便客戶端自己正常傳送空資料進來,伺服器也不會收到0資料,所以當伺服器收到0的時候就代表客戶端請求正常關閉)。

二:異常關閉:

如果客戶端強制點了x ,則代表未經過(退出遊戲)正常關閉操作,當伺服器捕獲異常(遠端主機強制關閉),則停止這個socket連線

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using system.net.sockets;

using system.net;

namespace tcpserver

static void startserverasync()

static void acceptcallback(iasyncresult ar)

static void receivecallback(iasyncresult ar)

string msgreceive = encoding.utf8.getstring(databuffer, 0, count);

console.writeline(msgreceive);

socketclient.beginreceive(databuffer, 0, 1024, socketflags.none, receivecallback, socketclient);

} catch (exception e)

}

}void startserversync()

}}

TCP客戶端與服務端通訊

客戶端 include include include include include in.h include include include include define maxline 1024 int main int argc,char ar 建立socketfd socketfd soc...

簡單實現TCP服務端與客戶端

1 include2 include3 include4 include5 include6 include7 include8 include9 10 tcp服務端 簡單的網路聊天程式 11 1 建立socket 12 2 為socket繫結位址埠 13 3 開始監聽socket 告訴作業系統,開...

基於socket的簡單tcp客戶端與服務端程式

前一段時間,我實習所在公司的同事說想學習網路程式設計的知識,我向他介紹了我學習網路程式設計的歷程,在此給大家分享一下,希望能給剛入門的小夥伴帶來幫助。我當時學網路程式設計時,沒有志同道合的小夥伴,沒有專業的導師教導,自己在這個過程中摸索前行,其中的困難只有自己清楚。自己的學習歷程 2,漸漸的發現wi...