C 網路程式設計

2021-09-07 06:58:38 字數 2321 閱讀 1203

tcp: 面向連線的傳輸協議

全雙工: a---b 可以互相傳遞資料

點對點: 傳輸的資料不可能有多個接收方

可靠的資料傳輸: 傳送的資料是abc,接受到的一定是abc

tcp 屬於:傳輸層的協議

套接字:

應用程式通過套接字類獲取到 輸入和輸出的資料.

tcpclient:則用於接收和傳送流資料

tcplistener:用於接受連線請求

總是服務端使用tcplistener類

網路連天程式的三種模式

1. 點對點,每一台計算機都是伺服器

2. a在伺服器中知道了b, 就可以直接a -- b 的連線對話

3. a -- 伺服器 -- b

漫長的程式設計操作

ipaddress類

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

ipendpoint類(表示ip和埠號)

ipendpoint iep = new ipendpoint(ip, 5666);

dns類

1. 解析制定的網域名稱

gethostname() 獲取本機名

gethostentry() 根據主機名,獲取到ip物件

socket類: 封裝了 連線,監聽,接受的方法.

tcpclient類(客戶端)

tcpclient.connect(connip, connport); //連線指定網路端

networkstream = tcpclient.getstream(); //獲取流

tcplistener類(伺服器)

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

client = tcplistener.accepttcpclient(); //中斷程序

networkstream網路流

//建立乙個非同步委託

asynccallback callback = new asynccallback(readmessage);

//當buffer讀取完畢之後,就呼叫callback委託中的方法進行處理

networkstream.beginread(buffer, 0, buffer.length, callback, null);

upd程式設計簡介:

是一種"面向資料報"的"無連線協議":,提供的是"不一定可靠"的傳輸服務

udp 與 tcp的區別

1. udp可靠性不如tcp

2. udp不能保證有序傳輸

udp優勢

1. udp速度比tcp快

2. udp可以一對多傳輸

3. udp有訊息邊界(有格式的)

udpclient類

幾種例項化方式:

1. public udpclient();

2. public udpclient(int port); 只需要傳送資料報,(匿名傳送) .對方無法判斷傳送方的埠

3. public udpclient(ipendpoint localep); 只接收資料報

4. public udpclient(string hostname, int port); 接收和傳送,使用4,指定接收遠端主機ip 和 port. 自動分配本機ip和 port

1. 只需要傳送資料報,(匿名傳送) .對方無法判斷傳送方的埠

使用2進行例項化

2. 只接收資料報

使用33. 接收和傳送

使用4,指定接收遠端主機ip 和 port. 自動分配本機ip和 port

傳送資訊

public int send(byte butter,int length,ipendpoint ipe);

接收資訊

public byte receive(ref ipendpoint remoteep)

remoteep 傳送資訊來的ip和埠號

//建立ipendpoint

ipendpoint remoteipendpoint new ipendpoint(ipaddress.any,0);

ipaddress.any 任意ip位址

0 任意埠號

udp廣播和組播:實現一對多的傳輸方式

子網掩碼 是ip 參照物.分網段用的!

比如 192.168.0.1 和192.168.0.2

1.子網掩碼為 255.255.255.0

那麼192.168.0.x 在同乙個網段,能互相訪問

2.希望掩碼為 255.255.0.0

那麼 192.168.x.x在同乙個網段,能互相訪問

ip位址分為兩部分:

網路標誌部分

主機標誌部分

C 網路程式設計

首先我們解釋一下在網路程式設計時候,經常遇到的幾個概念 同步 synchronous 非同步 asynchronous 阻塞 block 和非阻塞 unblock 所謂同步方式,就是傳送方傳送資料報以後,不等接受方響應,就接著傳送下乙個資料報。非同步方式就是當傳送方傳送乙個資料報以後,一直等到接受方...

C 網路程式設計

1 ip網路中的每台主機都有乙個ip位址 它是邏輯位址 網際網路上的ip位址具有全球唯一性 4個位元組,192.168.0.16 2 osi將網路分為 tcp ip模型 應用層 應用層 表示層會話層 傳輸層 傳輸層 網路層 網路層 資料鏈路層 網路介面 物理層相同層次之間不可以直接通訊,是虛擬通訊。...

c 網路程式設計

microsoft.framework為應用程式訪問inter 提供了分層的 可擴充套件的以及受管轄的網路服務,其名字空間system.和system.sockets包含豐富的類可以開發多種網路應用程式。類採用的分層結構允許應用程式在不同的控制級別上訪問網路,開發人員可以根據需要選擇針對不同的級別編...