Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
若要使用 UDP 而不是 TCP,需要更改協議類型,如下面的示例所示:
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
一旦創建 Socket,在客戶端,你將可以通過Connect方法連接到指定的服務器,并通過Send/SendTo方法向遠程服務器發送數據,而后可以通過Receive/ReceiveFrom從服務端接收數據;而在服務器端,你需要使用Bind方法綁定所指定的接口使Socket與一個本地終結點相聯,并通過Listen方法偵聽該接口上的請求,當偵聽到用戶端的連接時,調用Accept完成連接的操作,創建新的Socket以處理傳入的連接請求。使用完 Socket 后,記住使用 Shutdown 方法禁用 Socket,并使用 Close 方法關閉 Socket。其間用到的方法/函數有:
Socket.Connect方法:建立到遠程設備的連接 public void Connect(EndPoint remoteEP)(有重載方法) Socket.Send 方法:從數據中的指示位置開始將數據發送到連接的 Socket。 public int Send(byte[], int, SocketFlags);(有重載方法) Socket.SendTo 方法 將數據發送到特定終結點。 public int SendTo(byte[], EndPoint);(有重載方法) Socket.Receive方法:將數據從連接的 Socket 接收到接收緩沖區的特定位置。 public int Receive(byte[],int,SocketFlags); Socket.ReceiveFrom方法:接收數據緩沖區中特定位置的數據并存儲終結點。 public int ReceiveFrom(byte[], int, SocketFlags, ref EndPoint); Socket.Bind 方法:使 Socket 與一個本地終結點相關聯: public void Bind( EndPoint localEP ); Socket.Listen方法:將 Socket 置于偵聽狀態。 public void Listen( int backlog ); Socket.Accept方法:創建新的 Socket 以處理傳入的連接請求。 public Socket Accept(); Socket.Shutdown方法:禁用某 Socket 上的發送和接收 public void Shutdown( SocketShutdown how ); Socket.Close方法:強制 Socket 連接關閉 public void Close();
IPAddress類:IPAddress 類包含計算機在 IP 網絡上的地址。其Parse方法可將 IP 地址字符串轉換為 IPAddress 實例。下面的語句創建一個 IPAddress 實例:
IPAddress myIP = IPAddress.Parse("192.168.1.2");
Dns 類:向使用 TCP/IP Internet 服務的應用程序提供域名服務。其Resolve 方法查詢 DNS 服務器以將用戶友好的域名(如"host.contoso.com")映射到數字形式的 Internet 地址(如 192.168.1.1)。Resolve方法 返回一個 IPHostEnty 實例,該實例包含所請求名稱的地址和別名的列表。大多數情況下,可以使用 AddressList 數組中返回的第一個地址。下面的代碼獲取一個 IPAddress 實例,該實例包含服務器 host.contoso.com 的 IP 地址。