程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Socket網絡編程學習筆記(1):常用方法介紹

Socket網絡編程學習筆記(1):常用方法介紹

編輯:關於.NET

雖然天天上博客園欣賞各位“大俠”的傑作,偶然回首,突然發 現自己已成“潛水者”久矣。本來對於自己有限的水平,有點不好意 思在此發貼,不過潛伏久了,才慢慢意識到老是通過浏覽他人的文章雖然能夠提 高自己能力,能夠及時的獲取新技術新思想,但卻只能停留在他人的思想上。通 過學習,加上自己的想法,再寫出來,讓大家來指證錯誤,不僅能夠鞏固自己的 知識,也可以讓一些跟我一樣迷惘的朋友們不用再去走一些彎路,豈不是兩全其 美,本著這樣的想法,打算把自己平時的所學所想都寫下來,歡迎各路朋友批評 指證,因為你的批評和建議能夠讓我更迅速的得到提高。

好了,講了這麼多廢話,也該言歸正傳了。由於工作上需要,最近惡補了一 下socket網絡編程,整理了一下資料,把它放上來,希望能夠對一些朋友有幫助 。

在講Socket編程前,我們先來看一下幾個最常用的類和方法,相信這些東西 能讓你事半功倍。

一、IP地址操作類

1、IPAddress類

a、在該類中有一個Parse()方法,可以把點分的十進制IP表示轉化成 IPAddress類,方法如下:

IPAddress address = IPAddress.Parse(“192.168.0.1”);

b、IPAddress提供4個只讀字段

Any  用於代表本地系統可用的任何IP地址

Broadcase 用於代表本地網絡的IP廣播地址

Loopback 用於代表系統的回送地址  

None 用於代表系統上沒有網絡接口

其中IPAddress.Any最常用可以用來表示本機上所有的IP地址,這對於socket 服務進行偵聽時,最方便使用,不用對每個IP進行偵聽了。而 IPAddress.Broadcase可用來UDP的IP廣播,這些具體講socket時再詳細介紹。

2、IPEndPoint類      

我們可以通過二種構造方法來創建IPEndPoint類:

a、IPEndPoint(long address, int port)

b、IPEndPoint(IPAddress address, int port)

四個屬性:

Address

AddressFamily

Port

MaxPort

MinPort

這些應該從名字上就很好理解,不再一一介紹。IPEndPoint其實就是一個IP 地址和端口的綁定,可以代表一個服務,用來Socket通訊。

二、DNS相關類

DNS類有四個靜態方法,來獲取主機DNS相關信息,

1、GetHostName()

通過Dns.GetHostName()可以獲得本地計算機的主機名

2、GetHostByName()

根據主機名稱,返回一個IPHostEntry 對象:

IPHostEntry GetHostByName(string hostName)

其中IPHostEntry把一個DNS主機名與一個別名和IP地址的數組相關聯,包含 三個屬性:

AddressList:一個IPAddress對象的數組

Aliases:一個字符串對象數組

HostName:一個用於主機名的字符串對象

3、GetHostByAddress()

類似於GetHostByName(),只不過這裡的參數是IP地址,而不是主機名,也返 回一個IPHostEntry對象。

IPHostEntry GetHostByAddress(IPAddress address)

IPHostEntry GetHostByAddress(string address)

4、Resolve()

當我們不知道輸入的遠程主機的地址是哪種格式時(主機名或IP地址),用 以上的二種方法來實現,我們可能還要通過判斷客戶輸入的格式,才能正確使用 ,但Dns類提供一更簡單的方法Resolve(),該方法可以接受或者是主機名格式或 者是IP地址格式的任何一種地址,並返回IPHostEntry對象。

常用方法就寫到這裡了,當然針對網絡編程不可能只有這麼幾個類和方法, 只不過這幾個我們最常用,也非常的簡單。不過因為本人比較懶惰,沒有放一些 具體的實例上去,請見諒

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved