WinSock控件能夠通過UDP協(xié)議(用戶數(shù)據(jù)報協(xié)議)或TCP協(xié)議(數(shù)據(jù)傳輸協(xié)議)連接到遠程的機器并進行數(shù)據(jù)交換。這兩種協(xié)議都能用來創(chuàng)建客戶端和服務端應用程序。就像定時器控件一樣,WinSock控件運行時沒有一個可視的界面。
可能的用途
創(chuàng)建客戶端應用程序,它能在信息到達中央服務器之前把用戶的信息收集起來。
創(chuàng)建服務端應用程序,它能作為來自多個用戶的數(shù)據(jù)一個集中處理點。
創(chuàng)建“聊天”程序。
協(xié)議的選擇
當我們使用WinSock控件時,首先要確定的是使用TCP還是UDP協(xié)議。它們之間主要的區(qū)別在于連接狀態(tài):
TCP協(xié)議控件是一個基于連接的協(xié)議,就像電話機一樣,用戶必須在通話之前建立連接;
UDP是一個無連接的協(xié)議,兩臺計算機之間的事務處理就像傳紙條一樣:一臺計算機向另一臺計算機發(fā)送消息,但是它們之間并沒有一個明確的連接路徑。另外,發(fā)送的單個信息量的大小取決于網(wǎng)絡。
通常,你要創(chuàng)建的應用程序的類別就決定了你要選擇的協(xié)議。以下是幾個能夠幫助你選擇合適的協(xié)議的問題:
當發(fā)送或接收數(shù)據(jù)時,該應用程序需要從服務端或客戶端獲得認證嗎?如果要的話,那么TCP協(xié)議就正好需要在發(fā)送或接受數(shù)據(jù)前建立明確的連接。
要發(fā)送的數(shù)據(jù)量大嗎?(就像圖片、聲音文件之類)一旦建立了連接,TCP協(xié)議就會保持連接并保證數(shù)據(jù)的完整性。但是,這種連接會占用的更多的處理器資源,成本也會更高一些。
數(shù)據(jù)是陸續(xù)傳輸?shù)?,還是一次全部傳完呢?比如,如果你要創(chuàng)建的應用程序在某些任務完成時會告知具體的計算機,那么選擇UDP協(xié)議會更合適一些。UDP協(xié)議也更適合于發(fā)送小量數(shù)據(jù)。
協(xié)議的配置
配置你的應用程序所用到的協(xié)議:在設計階段,單擊工具窗口里的協(xié)議,選擇sckTCPProtocol或sckUDPProtocol。你也可以在代碼里配置協(xié)議,就像下面這樣:
Winsock1.Protocol=sckTCPProtocol
確定你的計算機名
要連接到遠程的計算機,你必須知道它的IP地址或別名。IP地址是一串用句點分隔的3位數(shù)字。通常,計算機的別名更容易讓人記住。
按下面的步驟可以找到你的計算機名:
在“任務欄”里單擊“開始”
在“設置”選項里單擊“控制面板”;
雙擊“網(wǎng)絡”圖標;
單擊“網(wǎng)絡標識”
在“計算機名”中顯示的就是你的計算機名。
一旦你找到你的計算名,它就可以作為遠程主機的屬性來用了。
可能的用途
創(chuàng)建客戶端應用程序,它能在信息到達中央服務器之前把用戶的信息收集起來。
創(chuàng)建服務端應用程序,它能作為來自多個用戶的數(shù)據(jù)一個集中處理點。
創(chuàng)建“聊天”程序。
協(xié)議的選擇
當我們使用WinSock控件時,首先要確定的是使用TCP還是UDP協(xié)議。它們之間主要的區(qū)別在于連接狀態(tài):
TCP協(xié)議控件是一個基于連接的協(xié)議,就像電話機一樣,用戶必須在通話之前建立連接;
UDP是一個無連接的協(xié)議,兩臺計算機之間的事務處理就像傳紙條一樣:一臺計算機向另一臺計算機發(fā)送消息,但是它們之間并沒有一個明確的連接路徑。另外,發(fā)送的單個信息量的大小取決于網(wǎng)絡。
通常,你要創(chuàng)建的應用程序的類別就決定了你要選擇的協(xié)議。以下是幾個能夠幫助你選擇合適的協(xié)議的問題:
當發(fā)送或接收數(shù)據(jù)時,該應用程序需要從服務端或客戶端獲得認證嗎?如果要的話,那么TCP協(xié)議就正好需要在發(fā)送或接受數(shù)據(jù)前建立明確的連接。
要發(fā)送的數(shù)據(jù)量大嗎?(就像圖片、聲音文件之類)一旦建立了連接,TCP協(xié)議就會保持連接并保證數(shù)據(jù)的完整性。但是,這種連接會占用的更多的處理器資源,成本也會更高一些。
數(shù)據(jù)是陸續(xù)傳輸?shù)?,還是一次全部傳完呢?比如,如果你要創(chuàng)建的應用程序在某些任務完成時會告知具體的計算機,那么選擇UDP協(xié)議會更合適一些。UDP協(xié)議也更適合于發(fā)送小量數(shù)據(jù)。
協(xié)議的配置
配置你的應用程序所用到的協(xié)議:在設計階段,單擊工具窗口里的協(xié)議,選擇sckTCPProtocol或sckUDPProtocol。你也可以在代碼里配置協(xié)議,就像下面這樣:
Winsock1.Protocol=sckTCPProtocol
確定你的計算機名
要連接到遠程的計算機,你必須知道它的IP地址或別名。IP地址是一串用句點分隔的3位數(shù)字。通常,計算機的別名更容易讓人記住。
按下面的步驟可以找到你的計算機名:
在“任務欄”里單擊“開始”
在“設置”選項里單擊“控制面板”;
雙擊“網(wǎng)絡”圖標;
單擊“網(wǎng)絡標識”
在“計算機名”中顯示的就是你的計算機名。
一旦你找到你的計算名,它就可以作為遠程主機的屬性來用了。