六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

用Winsock編寫網(wǎng)絡(luò)通信程序

[摘要]文/徐大華  Winsock是Microsoft Windows提供的網(wǎng)絡(luò)編程接口,它提供了基于TCP/IP協(xié)議的接口實(shí)現(xiàn)方法。用戶不必了解TCP,通過設(shè)置Winsock控件的屬性并調(diào)用它的方法,就...
文/徐大華

  Winsock是Microsoft Windows提供的網(wǎng)絡(luò)編程接口,它提供了基于TCP/IP協(xié)議的接口實(shí)現(xiàn)方法。用戶不必了解TCP,通過設(shè)置Winsock控件的屬性并調(diào)用它的方法,就可以與一臺遠(yuǎn)程計(jì)算機(jī)相連,從而實(shí)現(xiàn)數(shù)據(jù)傳輸。

  TCP/IP協(xié)議提供了兩種同其他計(jì)算機(jī)進(jìn)行通信的方式:TCP和UDP方式。具體采用哪種方式,要視以下三種情況而定:


  1、如果應(yīng)用程序在收發(fā)數(shù)據(jù)時(shí)需要得到客戶端或服務(wù)器端的確認(rèn)或應(yīng)答,則使用TCP方式;

  2、如果需要發(fā)送的數(shù)據(jù)量特別大則使用TCP方式;

  3、數(shù)據(jù)發(fā)送是間歇的,或是在一個(gè)會話內(nèi)?如果發(fā)送通知一類的短信息,UDP方式是最適合的。

  關(guān)于Winsock控件

  Winsock控件在使用前需先在工具箱面板中單擊鼠標(biāo)右鍵,從彈出的菜單中選擇“部件”菜單,從“部件”對話框中選擇Microsoft Winsock Controls 6.0,將它添加到工具箱中。在使用Winsock控件前必須先了解它的基本屬性和方法:

  1、Protocol:用于設(shè)置和返回Winsock控件所使用的協(xié)議;

  2、LocalPort:設(shè)置或返回本地通信程序端;

  3、RemotePort:設(shè)置或返回要連接的遠(yuǎn)程計(jì)算機(jī)通信程序的端口號;

  4、RemoteHost:設(shè)置或返回遠(yuǎn)程計(jì)算機(jī)名,并向它發(fā)送數(shù)據(jù)或從那里接收數(shù)據(jù);

  5、State:返回控件的當(dāng)前狀態(tài)。通過它的值決定控件的下一步處理狀態(tài);

  6、Listen:用于服務(wù)器程序,等待客戶訪問。僅適用于TCP方式;

  7、Accept:用于接收連接請求,適用于TCP服務(wù)器應(yīng)用程序,當(dāng)有連接請求時(shí)用此方法接受請求以建立連接;

  8、SendData:用于將數(shù)據(jù)發(fā)送給遠(yuǎn)程計(jì)算機(jī)。可在TCP/UDP兩種方式下使用;

  9、GetData:用來取得接收到的數(shù)據(jù),并將數(shù)據(jù)存儲在變體類型的變量中,然后清除接收緩沖區(qū);

  10、Close:對客戶機(jī)和服務(wù)器應(yīng)用程序關(guān)閉TCP連接。

  實(shí)例制作

  本例是通過Winsock控件的遠(yuǎn)程通訊功能,采用TCP協(xié)議來設(shè)計(jì)一師生聊天程序。

  1、教師機(jī)即服務(wù)器

  在這里需要兩個(gè)Label控件和一個(gè)Winsock控件。

  對于Winsock的端口號(LocalPort),通常選擇大于100的整數(shù),以避免同其他通信程序產(chǎn)生沖突。該程序通過Text1的Change事件,向客戶端的Text2發(fā)送數(shù)據(jù)。

  程序代碼如下:

  Private Sub Form_Load()

  Winsock1.LocalPort = 1001 '設(shè)置本地計(jì)算機(jī)通信程序端口

  Winsock1.Listen '等待客戶機(jī)訪問

  Form2.Show '顯示客戶機(jī)界面

  End Sub

  Private Sub Text1_Change()

  Winsock1.SendData Text1.Text '將數(shù)據(jù)傳輸給客戶機(jī)

  End Sub

  Private Sub Winsock1_ConnectionRequ-

  est(ByVal requestID As Long)

  If Winsock1.State<>sckClosed Then

  Winsock1.Close

  Winsock1.Accept requested '用于接收連接請求

  End If

  End Sub

  Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

  Dim aa As String

  Winsock1.GetData aa '接收客戶機(jī)傳輸過來的數(shù)據(jù)

  Text2.Text = aa '將客戶機(jī)傳輸過來的數(shù)據(jù)顯示在Text2中

  End Sub

  2、學(xué)生機(jī)即客戶機(jī)

  在這里需要的兩個(gè)Label控件、兩個(gè)Command控件以及一個(gè)Winsock控件。

  程序代碼如下:

  Private Sub Command1_Click()

  Form2.Winsock1.Connect '同遠(yuǎn)程計(jì)算機(jī)建立連接

  End Sub

  Private Sub Command3_Click()

  End '結(jié)束程序運(yùn)行

  End Sub

  Private Sub Form_Load()

  Winsock1.RemoteHost = "遠(yuǎn)程計(jì)算機(jī)名"

  '獲取遠(yuǎn)程計(jì)算機(jī)名

  Winsock1.RemotePort = 1001 '獲取遠(yuǎn)程計(jì)算機(jī)通信程序的端口

  End Sub

  Private Sub Text1_Change()

  Winsock1.SendData Text1.Text '向服務(wù)器發(fā)送數(shù)據(jù)

  End Sub

  Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

  Dim aa As String

  Winsock1.GetData aa '接收服務(wù)器傳輸入過來的數(shù)據(jù)

  Text2.Text = aa '將接收的數(shù)據(jù)在Text2中顯示出來

  End Sub

  運(yùn)行服務(wù)器程序,再運(yùn)行客戶端程序,最后單擊客戶端窗全上的“連接”按鈕,這時(shí)就可實(shí)現(xiàn)兩個(gè)計(jì)算機(jī)間的通信了。


主站蜘蛛池模板: 亚洲国产综合精品中文字幕 | 日本七大伦理经典在线观看 | 亚洲精品欧美精品国产精品 | 夭天干天天做天天免费看 | 欧美亚洲桃花综合 | 色噜噜色偷偷男人的天堂 | 午夜在线观看免费高清在线播放 | 亚洲 成人 欧美 自拍 | 中文乱码一二三四有限公司 | 色综合天天综合高清网国产 | 四虎影视网 | 日韩性视频 | 天天晚上开着日 | 日本一二三区高清 | 在线观看91 | 亚洲v日本v欧美v综合v | 亚洲日本va在线观看 | 青青青免费网站在线观看 | 午夜在线亚洲男人午在线 | 亚洲是色| 午夜精品视频在线观看美女 | 热久久久久久久 | 亚洲一区www | 午夜国产在线观看 | 在线观看免费亚洲 | 日日夜夜拍 | 色综合天天综合 | 色呦呦在线免费观看 | 亚洲免费在线播放 | 日本一区二区不卡视频 | 色婷婷色| 日韩一级视频 | 日韩一区二区三区免费 | 青青草a国产免费观看 | 日韩专区一区 | 在线观看日本 | 夜夜快播 | 手机在线观看亚洲国产精品 | 日本天堂免费观看 | 日本道精品一区二区三区 | 天堂v亚洲国产v一区二区 |