程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> socket編程學習筆記(2), C#網絡編程概念性介紹

socket編程學習筆記(2), C#網絡編程概念性介紹

編輯:關於C語言

C#網絡編程實際就是對WinSock進行了進一步的包裝。

1. IPAddress,IPEndPoint, SocketAddress類

IPAddress就是一個IP 地址類, IPEndPoint就是IPAddress+Port,對應的就是sockaddr_in這個struct. SocketAddress類可以存儲IPEndPoint類序列化以後的信息。

1.1 這兩個類常用和注意的一些地方:¼

1) IPAddress ip = IPAddress.Parse("192.168.123.1");

2) IPAddress.Any is 0.0.0.0, 這個用在當系統中有多個網絡接口,而用戶不想把套接字綁定在任何接口上的時候。

3) IPAddress.None is 255.255.255.255, 它經常用來創建一個偽套接字。

4) 得到本機IP地址的一個方法: Dns.GetHostByName(Dns.GetHostName()).AddressList[0]

2, C#中的套接字類System.Net.Sockets.Socket

public Socket(
  AddressFamily addressFamily,
  SocketType socketType,
  ProtocolType protocolType
);

在上面的構造函數中,SocketType與ProtocolType要自己對應。對應關系如下:

Dgram(UDP) 無連接通信

Stream (TCP) 面向連接的通信

Raw   (ICMP) ICMP協議

Raw   (Raw)  簡單IP包

Socket t = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );

2.1 套接字Socket類常用屬性和函數

Blocking 用來設置socket是否堵塞

Connected 指示 Socket 是否已連接到遠程主機. 即使 Connected 返回 true,也無法保證 Socket 仍處於 Connected 狀態。true 值僅意味著在上次 I/O 操作時 Socket 處於連接狀態.

SetSocketOption()方法,將指定的 Socket 選項設置為指定值,看起來就是設置協議包頭的一些值。(選項太多,看看MSDN,用google查查,可以找到很多例子)

其他的方法,例如bind(),listen(),send(),receive()和WinSocket本質都一樣。(略)

2.2 Socket異常, SocketException

2.3為了簡化Socket操作,C#提供了3個套接字助手:

TcpClient, TcpListener, UdpClIEnt

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved