麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

用Winsock實現點對點通信

2019-11-18 17:46:04
字體:
來源:轉載
供稿:網友
Winsock控件是VB5.0的新增功能,它解決了以往應用VB編程時網絡中應用程序之間無法實現點對點通信的難題。Winsock使用的TCP協議和UDP協議允許建立并保持一個到遠程計算機上的連接,且可以在連接結束之前實時地進行數據交換。用戶僅通過設置屬性并借助事件處理就能夠輕而易舉地連接到一個遠程的計算機上,而且只用兩個命令就可以實現數據交換。
使用TCP協議時,如果需要創建一個客戶應用程序,就必須識別服務器的名稱或ip地址。應用程序的通信端口隨時都將仔細監測對方發出的消息,這是系統進行可靠連接的保證。一旦連接發生,任何一方都可以通過SendData發送和接收數據,并借助GetData把自己的數據分離出來。
傳送數據時,需要先設定客戶機的LocalPort屬性,服務器則只需要把RemoteHost屬性設定為客戶機以太網的地址,并設定與客戶機LocalPort屬性相同的端口地址,借助SendData方法開始發送消息。客戶機則在GetData事件中通過DataArrival事件分離出發送的信息。
一個Winsock控件可以讓本地計算機連接到遠程的計算機上,同時使用UDP或TCP協議,兩個協議都能創建客戶機和服務器應用。
使用Winsock控件時,通信的雙方需要選定相同的協議。TCP協議適用于傳送大容量、需要安全性保證的數據文件;而UDP協議適用于需要分別與很多下屬通信,或者建立的連接比較多且為時變的情況,特別是在數據量很小的時候。設定時可以使用Winsock1.PRotocol=sckTCPProtocol方法,首先要找到你的計算機的名稱,并把它添入Winsock的LocalHost屬性中。
創建一個應用程序時,首先要確定你建立的是客戶方應用還是服務器服務,只有建立的服務器應用開始工作,并進入監聽狀態時,客戶應用程序才開始建立連接,進入正常的通信狀態。筆者建立了一個應用程序,它的功能是當客戶方的鼠標移動時,服務器應用程序上能夠實時顯示該鼠標的位置。下面是建立服務器應用的方法:
1.創建一個新的標準EXE文件;
2.加入一個Winsock控件;
3.加入如下代碼:
PrivateSubFormLoad()
tcpServer.LocalPort=1001
tcpServer.Localhost=″servser″
tcpServer.remotePort=1002
tcpServer.Localhost=″klint″
tcpServer.Listen
EndSub
′連接檢查
PrivateSubtcpServerConnectionRequest
(ByValrequestIDAsLong)
IftcpServer.State<>sckClosedThen
tcpServer.Close
tcpServer.AcceptrequestID
EndSub
′發送數據
PrivateSubfrmservermonsemove(x,y)
tcpServer.SendData″x″&str(x)
tcpServer.SendData″y″&str(y)
EndSub
建立客戶應用的方法為:
1.創建一個新的標準EXE文件;
2.加入一個Winsock控件;
3.加入兩個TEXT框——txtx和txty;
4.加入如下代碼:
PrivateSubFormLoad()
tcpServer.LocalPort=1002
tcpServer.Localhost=″klint″
tcpServer.remotePort=1001
tcpServer.Localhost=″servser″
tcpServer.Listen
EndSub
′連接檢查
PrivateSubtcpklintConnectionRequest
(ByValrequestIDAsLong)
Iftcpklint.State<>sckClosedThen
tcpklint.Close
tcpklint.AcceptrequestID
EndSub
PrivateSubtcpClientDataArrival
(ByValbytesTotalAsLong)
DimstrDataAsString
tcpklint.GetDatastrData
ifleft(strData,1)=″X″then
txtx.Text=strData
else
txty.Text=strData
endif
EndSub
以上例程實現的是一個非常簡單的點對點通信,在此基礎上略加改造,可以形成功能復雜的實時計算機網絡A-A交互通信系統,用于控制、圖形仿真等。
使用UDP協
議建立對等通信和通過TCP建立客戶/服務器通信的方法略有不同,它不需要建立客戶和服務器,而是建立對等通信。此過程通過以下幾步實現:
1.設定Winsock的RemoteHost屬性為一個通信的計算機名稱;
2.設定RemotePort為一個接口號;
3.調用Winsock的Bind事件綁定本地的接口號。具體設定方法為:
PrivateSubFormLoad()
WithWinsock1
.RemoteHost=″PeerB″
.RemotePort=1001′遠程連接號
.Bind1002
′綁定的本地號
EndWith
EndSub
程序的其它部分與TCP方法類似,即通過SendData和GetData方法發送或提取數據。UDP和TCP協議在使用中各有特點,如果靈活使用,可以得到很好的效果。令人欣慰的是,VB5.0中Winsock給我們提供了一種簡便的數據傳送方法,使我們得以輕松地實現網絡點對點通信!->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久影库 | 综合97| 黄色网欧美| 久久久毛片视频 | 日本精品久久久一区二区三区 | 国产亚洲精品久久午夜玫瑰园 | 91av网址 | 国产精品久久久久久久久久久久午夜 | 精品国产乱码一区二区 | 在线视频 欧美日韩 | 亚洲一级毛片 | 羞羞视频免费观看入口 | 一区二区三区手机在线观看 | 欧美成人国产va精品日本一级 | 爱看久久 | 欧美精品久久久久久久久老牛影院 | 日本一区二区三区视频在线 | 毛片视频播放 | 欧美69free性videos| 国产羞羞视频在线免费观看 | 久久精品免费网站 | 一级在线观看视频 | 国产免费一级大片 | 成人国产精品齐天大性 | 欧美一级做一级爱a做片性 91在线视频观看 | 国产精品一区二区三区99 | 欧美精品日日鲁夜夜添 | 久久久一二三 | 欧美一级黄色网 | 成人三级电影网 | 欧洲精品视频在线观看 | 中文字幕爱爱视频 | 久久精品久久久久 | 久色亚洲| 久久精品9| 日本68xxxx | 欧美一级免费视频 | 综合97| 精品国产视频一区二区三区 | 国产一国产一级毛片视频 | 色柚视频网站ww色 |