c 網路程式設計基礎

2022-05-06 14:48:10 字數 1520 閱讀 9911

1 iphostentry iphost = dns.gethostentry("

www.google.com.hk

");2 ipaddress ip = iphost.addresslist; //

獲取列表

3 endpoint ep = new ipendpoint(ip[0], 80); //

建立結點

4 socket socket = new socket(addressfamily.internetwork, sockettype.stream, protocoltype.tcp); //

初始化socket

5 socket.connect(ep); //連線6

if (socket.connected)

7

首先建立socket物件的例項,這可以通過socket類的構造方法來實現:

public socket(addressfamily addressfamily,sockettype sockettype,protocoltype protocoltype);

其中,addressfamily 引數指定socket使用的定址方案,比如addressfamily.internetwork表明為ip版本4的位址;

sockettype引數指定socket的型別,比如sockettype.stream表明連線是基於流套接字的,而sockettype.dgram表示連線是基於資料報套接字的。

protocoltype引數指定socket使用的協議,比如protocoltype.tcp表明連線協議是運用tcp協議的,而protocol.udp則表明連線協議是運用udp協議的。

在建立了socket例項後,我們就可以通過乙個遠端主機的終結點和它取得連線,運用的方法就是connect()方法:

一旦連線成功,我們就可以運用send()和receive()方法來進行通訊。

send()方法public int send (byte buffer, int size, socketflags flags);

其中,引數buffer包含了要傳送的資料,引數size表示要傳送資料的大小,而引數flags則可以是以下一些值:socketflags.none、socketflags.dontroute、socketflags.outofbnd。

該方法返回的是乙個system.int32型別的值,它表明了已傳送資料的大小

在通訊完成後,我們就通過shutdown()方法來禁用socket,函式原型如下:

public void shutdown(socketshutdown how);

其中的引數how表明了禁用的型別,soketshutdown.send表明關閉用於傳送的套接字;soketshutdown.receive表明關閉用於接收的套接字;而soketshutdown.both則表明傳送和接收的套接字同時被關閉。

應該注意的是在呼叫close()方法以前必須呼叫shutdown()方法以確保在socket關閉之前已傳送或接收所有掛起的資料。一旦shutdown()呼叫完畢,就呼叫close()方法來關閉socket

C語言網路程式設計基礎

一 基礎知識介紹 tcp 傳輸控制協議 和udp 使用者資料報協議是網路體系結構tcp ip模型中傳輸層一層中的兩個不同的通訊協議。tcp 傳輸控制協議,一種面向連線的協議,給使用者程序提供可靠的全雙工的位元組流,tcp套介面是位元組流套介面 stream socket 的一種。udp 使用者資料報...

網路程式設計 網路基礎

1.物理層 提供建立 維護和拆除物理鏈路所需的機械 電氣 功能和規程的特性 提供有關在傳輸介質上傳輸非結構的位流及物理鏈路故障檢測指示。在這一層,資料還沒有被組織,僅作為原始的位流或電氣電壓處理,單位是位元。常用協議 eia tia rs 232 eia tia rs 449 v.35 rj 45 ...

C語言網路程式設計基礎1 1

在有了前一章的基礎知識後,我想我們該進入下一步的學習了。一 socket的說明 二 internet套介面的兩種型別 一種是 stream sockets 另外一種是 datagram sockets 我們以後談到他們的時候也會用到 sock stream 和 sock dgram 流式套介面是可靠...