• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

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

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

        更新時(shí)間:2019-06-29 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        文/徐大華

          Winsock是Microsoft Windows提供的網(wǎng)絡(luò)編程接口,它提供了基于TCP/IP協(xié)議的接口實(shí)現(xiàn)方法。用戶不必了解TCP,通過設(shè)置Winsock控件的屬性并調(diào)用它的方法,就可以與一臺(tái)遠(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è)會(huì)話內(nèi)?如果發(fā)送通知一類的短信息,UDP方式是最適合的。

          關(guān)于Winsock控件

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

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

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

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

          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:用于接收連接請(qǐng)求,適用于TCP服務(wù)器應(yīng)用程序,當(dāng)有連接請(qǐng)求時(shí)用此方法接受請(qǐng)求以建立連接;

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

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

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

          實(shí)例制作

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

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

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

          對(duì)于Winsock的端口號(hào)(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 '用于接收連接請(qǐng)求

          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ī)間的通信了。

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 免费国产怡红院在线观看| 99在线观看视频免费| 国产精品无码免费视频二三区 | 久久av免费天堂小草播放| 免费在线视频一区| 美女被暴羞羞免费视频| 国产一区在线观看免费| 美女被羞羞网站免费下载| 亚洲人成色77777在线观看大| 一二三四在线观看免费中文在线观看| 在线观看免费亚洲| 日韩一级片免费观看| 亚洲国产精品毛片av不卡在线| yellow视频免费在线观看| 国产午夜亚洲不卡| 美女内射无套日韩免费播放| 亚洲国产午夜电影在线入口| 毛色毛片免费观看| 国产精品亚洲片在线花蝴蝶| 国产精品亚洲mnbav网站| 国偷自产一区二区免费视频| 亚洲天堂电影在线观看| 成人免费视频小说| 一级黄色片免费观看| 国产AV无码专区亚洲AVJULIA| 精品无码AV无码免费专区| 91亚洲国产在人线播放午夜| 毛片免费视频播放| 色老头综合免费视频| 无码久久精品国产亚洲Av影片 | 粉色视频在线观看www免费| 亚洲最大av无码网址| 最近最好最新2019中文字幕免费| 亚洲熟妇无码av另类vr影视| 亚洲综合久久夜AV | 亚洲一区免费在线观看| 国产在亚洲线视频观看| 亚洲AV区无码字幕中文色| 性感美女视频免费网站午夜 | 久久久久久免费一区二区三区 | 我要看WWW免费看插插视频|