今天學(xué)習(xí)的是Winsock控件,控件對用戶不可視,在默認(rèn)的控件工具欄沒有添加,在使用之前需要先加載到工具箱中。使用時(shí)選擇“工程”→“部件”命令,在彈出的“部件”對話框中選擇Microsoft winsock Control 6.0,將該控件加載到工具箱中。
通過設(shè)置Winsock控件的屬性和調(diào)用該控件的方法,可以很容易地連接到遠(yuǎn)程計(jì)算機(jī)并進(jìn)行雙向的數(shù)據(jù)交換。通過對控件屬性的設(shè)置可以完成諸如獲取本地計(jì)算機(jī)名稱、設(shè)置本地計(jì)算機(jī)端口及設(shè)置遠(yuǎn)程計(jì)算機(jī)名稱和地址等功能。
一、Winsock控件函數(shù)
1. LocalHostName函數(shù):LocalHostName函數(shù)用于返回本地計(jì)算機(jī)的名稱。
2. LocallP函數(shù):LocallP屬性用于返回本地計(jì)算機(jī)的IP地址。格式是點(diǎn)數(shù)格式,例如,192.168.1.1。
二、Winsock控件的方法
主要有Accept方法、Bind方法、Close方法、Connect方法、GetData方法、Listen方法、PeekData方法及SendData方法。用戶通過使用這些方法可以完成諸如接收連接、關(guān)閉連接及發(fā)送數(shù)據(jù)和接收數(shù)據(jù)等操作。
三、服務(wù)器/客戶端網(wǎng)絡(luò)通信模式
該模式下,首先由服務(wù)器端“監(jiān)聽”指定端口,當(dāng)客戶端提出“連接”請求后,服務(wù)器端做出是否連接的決定。如果服務(wù)器端接受連接并建立新的連接后,服務(wù)器端和客戶端使可以進(jìn)行通信。用TCP創(chuàng)建服務(wù)器/客戶端網(wǎng)絡(luò)通信程序可以按以下步驟進(jìn)行。
(1)創(chuàng)建客戶端應(yīng)用程序。在客戶端設(shè)置服務(wù)器端計(jì)算機(jī)的IP地址(RemotelP屬性)或名稱(RemoteHost屬性)和服務(wù)器端的“監(jiān)聽”端.口號(RemotePort屬性)。然后調(diào)用Connect方法進(jìn)行連接。
(2)創(chuàng)建服務(wù)器端應(yīng)用程序。在服務(wù)器端設(shè)置一個(gè)監(jiān)聽端口(LocalPort屬性)并調(diào)用Listen方法。當(dāng)客戶端需要連接時(shí),會觸發(fā)ConnectionRequest事件,這時(shí)可以用Accept方法來完成接受連接的請求。
(3)建立連接后,服務(wù)器端和客戶端都可以進(jìn)行數(shù)據(jù)的收發(fā)。發(fā)送數(shù)據(jù)可以用SencData方法:當(dāng)數(shù)據(jù)到達(dá)時(shí),會觸發(fā)DataArrival事件,這時(shí)可以在DataArrival事件內(nèi)用GetData方法或PeekData方法來獲取數(shù)據(jù)。
本文于2023年5月15日首發(fā)于本人同名公眾號,更多文章案例請關(guān)注微信公眾號:Excel活學(xué)活用!