socket 套接字學習筆記

2021-06-21 21:20:10 字數 1295 閱讀 6025

socket 方法

receive(byte)

從繫結的 socket 套接字接收資料,將資料存入接收緩衝區。

send(byte)

將資料傳送到連線的 socket。

accept

為新建連線建立新的 socket。

注意:如果您使用的是面向連線的協議,則 remoteendpoint 屬性將獲取包含 socket 連線到的遠端 ip 位址和埠號的 endpoint。

而如果當前使用的是無連線的協議,則remoteendpoint 包含將要和 socket 通訊的預設遠端 ip 位址和埠號。

您必須將此 endpoint 強制轉換為 ipendpoint 才能檢索資訊。

然後就可以呼叫 ipendpoint.address方法來檢索遠端 ipaddress,呼叫 ipendpoint.port 方法來檢索遠端埠號。

remoteendpoint 是在呼叫 accept 或 connect 之後設定的。

如果試圖提前訪問該屬性,那麼 remoteendpoint 將引發 socketexception。

如果收到 socketexception,請使用 socketexception.errorcode 屬性獲取特定的錯誤**。

獲取此**後,您可以參考 msdn library 中的 windows sockets 第 2 版 api 錯誤**文件,獲取有關該錯誤的詳細說明。

//建立監聽套接字 使用ip4型別 ,流式傳輸, tcp鏈結 ;

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

//獲取埠

ipaddress address = ipaddress.parse(txtip.text);

//獲取網路節點

ipendpoint ippoint =new ipendpoint (address,int.parse(txtport.text));

//鏈結 根基埠號和ip

socmsg.connect(ippoint);

註明:

在多執行緒程式中,新建立的執行緒不能訪問ui執行緒建立的視窗控制項,如果需要訪問視窗中的控制項,可以在視窗建構函式中將checkforillegalcrossthreadcalls設定為 false

public form1()

也可以針對某一控制項進行設定,例如:

textbox.checkforillegalcrossthreadcalls = false;

學習Socket套接字

在學習之餘,因為乙個小專案,需要用到網路程式設計tcp ip的方式來連線到伺服器端的資料庫中。所以便在網上看了一些教材和帖子,學習了一下,但是還是有一些問題在此討論討論。socket是個什麼東西大家就都知道了,我就不去複製貼上啦。那咱首先介紹什麼呢?咱來介紹一下socket程式設計的標頭檔案 sys...

socket套接字學習

本地的程序間通訊 ipc 有很多種方式,但可以總結為下面4類 在本地可以通過程序pid來唯一標識乙個程序,但是在網路中這是行不通的。其實tcp ip協議族已經幫我們解決了這個問題,網路層的 ip位址 可以唯一標識網路中的主機,而傳輸層的 協議 埠 可以唯一標識主機中的應用程式 程序 這樣利用三元組 ...

套接字 Socket 定義

套接字介面可分為三類 公認埠 註冊埠 動態和 或私有埠 套接字,簡單的說就是通訊的兩方的一種約定,用套接字中的相關函式來完成通訊過程 應用層通過傳輸層進行資料通訊時,tcp和udp會遇到同時為多個應用程式程序提供併發服務的問題。多個tcp連線或多個應用程式程序可能需要通過同乙個 tcp協議埠傳輸資料...