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
C 網路程式設計 Socket程式設計
套接字簡介 套接字最早是unix的,window是借鑑過來的。tcp ip協議族提供三種套接字 流式 資料報式 原始套接字。其中原始套接字允許對底層協議直接訪問,一般用於檢驗新協議或者新裝置問題,很少使用。套接字程式設計原理 延續檔案作用思想,開啟 讀寫 關閉的模式。c s程式設計模式如下 開啟通訊...
網路程式設計 socket相關概念
socket介紹 socket位址 了解網路程式設計需要先了解計算機通訊中位元組的儲存順序 考慮32位機,cpu累加器一次能裝載4位元組。這4位元組在記憶體的排列順序影響被累加器裝載成的整數值。位元組序分為大端位元組序 big endian 和小端位元組序 little endian 傳送端總是要把...
網路程式設計 socket基本概念
什麼是socket?socket是連線應用程式和網路驅動程式的橋梁,socket在應用程式中建立,通過繫結操作和驅動程式建立聯絡。什麼是ip位址?在網路上,主機與主機間的通訊,首先需要知道對通訊方主機的名稱。在internet上用ip位址來標記網路裝置。廣義上的主機可以是工作在網路上的工作台 伺服器...