C Socket簡單案例

2021-08-25 06:08:45 字數 2171 閱讀 6505

#c# socket簡單案例

##socket server

1. 例項化並設定socket例項物件

a.建立ip位址和埠

b.繫結監聽位址

c.設定一下允許同時訪問數

2. 監聽連線

a.通過啟動乙個新的執行緒執行,這樣主線程不會假死(啟動執行緒,所帶的引數必須是object型別)

b.利用迴圈等待連線並返回乙個負責通訊的socket例項

c.返回的socket例項中可以獲取到所連線客服的ip位址

3. 接收客服的傳送過來的訊息

a.在監聽方法中啟動乙個新的執行緒執行

b.利用迴圈獲取傳送過來的訊息,呼叫獲取訊息的方法需要傳遞乙個位元組變數引數,作為容器。方法返回值為int,表示獲取到的有效位元組數

c.如果有效位元組數為0則跳出迴圈

d.接收到訊息給客服的返回訊息

4. 控制台程式伺服器端**

using system;

using system.net;

using system.net.sockets;

using system.text;

using system.threading;

namespace serversocket

/// /// 監聽連線

///

///

static void listen(object o)

connection");

//開啟乙個新執行緒不停接收訊息

thread thread = new thread(recive);

thread.isbackground = true;

thread.start(send);}}

/// /// 接收訊息

///

///

static void recive(object o)

var str = encoding.utf8.getstring(buffer,0, effective);

console.writeline(str);

var buffers = encoding.utf8.getbytes("server return message");

send.send(buffers);}}

}}

##socket client

1. 例項化並進行連線socket例項物件

a.建立ip位址和埠(伺服器的ip和埠)

b.與伺服器端建立鏈結

2. 接收伺服器傳送的訊息

a.啟動乙個新的執行緒執行

b.利用迴圈獲取傳送過來的訊息,呼叫獲取訊息的方法需要傳遞乙個位元組變數引數,作為容器。方法返回值為int,表示獲取到的有效位元組數

c.如果有效位元組數為0則跳出迴圈

3. 給伺服器傳送訊息

a. 呼叫socket物件的send()方法直接傳送
4. 控制台程式客戶端**

using system;

using system.net;

using system.net.sockets;

using system.text;

using system.threading;

namespace socketclient

"); var temp = socketclient.send(buffter);

thread.sleep(1000);}}

/// /// 接收訊息

///

///

static void recive(object o)

var str = encoding.utf8.getstring(buffer, 0, effective);

console.writeline(str);}}

}}

C Socket簡單介紹

一 套接字 socket 的基本概念 套接字是通訊的基石,是支援tcp ip協議的網路通訊的基本操作單元。可以將套接字看作不同主機間的程序進行雙向通訊的端點,它構成了單個主機內及整個網路間的程式設計介面。套接字存在於通訊域中,通訊域是為了處理一般的執行緒通過套接字通訊而引進的一種抽象概念。套接字通常...

C Socket 程式設計簡單例項

c console 程式設計 伺服器端 csharpconsolesokecttestserver.cs using system using system.collections.generic using system.text using system.net using system.net...

簡單的C Socket程式設計

簡單的c socket程式設計 2009年06月23日 using system using system.net using system.net.sockets using system.io public class echoserver socketforclient.close conso...