socket程式設計 C 網路程式設計概念性介紹

2022-09-17 08:15:10 字數 1396 閱讀 3134

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位址來標記網路裝置。廣義上的主機可以是工作在網路上的工作台 伺服器...