網路程式設計 二 基本操作

2021-07-27 09:17:04 字數 1580 閱讀 9812

伺服器端:伺服器端主要完成開啟對埠的偵聽,這就像為計算機開啟了乙個"門",所有向這個「門」傳送的請求都會被系統接收。在c#中可以通過以下步驟完成。

1)首先使用本機ip位址和埠號建立乙個sockets.tcplistener型別的例項,

2)   然後在該例項上呼叫start()方法。從而開啟對指定埠的偵聽。

服務端對埠進行偵聽

**如下:

class serverclient

static void main(string args)        

console.writeline("server is running....");

ipaddress ip=new ipadress(new byte ); //本機計算機的ip位址。

tcplistener listener=new tcplistener(ip,8500);

listener.start(); //開始監聽

console.writeline("start listening.......");

console.writeline("\n\n輸入\"q\"鍵退出。);

dokey=console.readkey(true).key;

}while(key!=consolekey.q);

獲取ipadderss的另外幾種常用方法:

ipaddress ip=ipaddress.parse("192.168.0.100");

ipaddress ip=dns.gethostentry(dns.gethostname()).addresslist[0];

客戶端與服務端連線

1.單一客戶端與伺服器端連線

服務端開始對埠偵聽以後,便可以建立客戶端與其連線。這一步是通過在客戶端建立乙個tcpclient的型別例項完成的,每建立乙個新的tcpclient便相當於建立乙個新的套接字socket與服務端通訊。tcpclient類不過世對socket進行了乙個包裝。在建立tcpclient型別例項時,可以指定遠端伺服器的位址和埠號。這樣在建立的同時,就會像遠端服務端傳送連線請求,一旦成功,則兩者間的連線就建立起來了。也可以使用過載的無引數建構函式建立物件,然後再呼叫connect()方法,在connect方法中傳入遠端伺服器位址和埠號來與伺服器建立連線。

需要注意的是不管事使用引數的建構函式與伺服器連線,還是通過connect()方法與伺服器建立連線,都是同步方法(或者說是阻塞的)。也就是說:客戶端與伺服器端連線成功,方法返回,或者服務端不存在之前,無法繼續後續的操作。這裡先討論同步的,後面再看非同步的

class client

static void main(string args)

console.writeline("client is running");

tcpclient client=new tcpclient();

trycatch(exception ex)--> server:",client.client.localendpont,client.client.remoteendpoint);

2.多個客戶端與服務端連線

多個客戶端與服務端連線**大體相同,只不過需要建立多個tcpclient而已。此處就不上**。

Linux網路程式設計(二) 基本TCP套接字程式設計

為了執行網路io,乙個程序必須先呼叫socket函式,指定期望通訊的協議型別 1 include2 int socket int family,int type,int protocol 3 返回 成功返回非負描述符,若出錯返回 1family引數的值 af inet ipv4協議 af inet6...

網路程式設計 基本函式

位元組排序函式 include 返回網路位元組序的值 uint16 t htons uint16 t host16bitvalue uint32 t htonl uint32 t host32bitvalue 返回主機位元組序的值 uint16 t ntohs uint16 t net16bitva...

udp基本網路程式設計

udp傳輸資料不需要像tcp一樣建立連線,只需要知道客戶端和伺服器的ip位址即可。首先是伺服器端,初始化套接字結構位址,建立套接字,繫結埠,迴圈監聽。include include 基本標頭檔案 include socket include struct sockaddr in include st...