用Visual Basic實現點對點通訊

2021-04-12 18:32:07 字數 2320 閱讀 1777

使用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.加入如下**:

private sub form load()

tcpserver.localport = 1001

tcpserver.localhost = "servser"

tcpserver.remoteport = 1002

tcpserver.localhost = "klint"

tcpserver.listen

end sub

′連線檢查

private sub tcpserver connectionrequest(byval requestid as long)

if tcpserver.state <> sckclosed then

tcpserver.close

tcpserver.accept requestid

end sub

′傳送資料

private sub frmserver monsemove(x,y)

tcpserver.senddata "x"&str(x)

tcpserver.senddata "y"&str(y)

end sub

建立客戶應用的方法為:

1.建立乙個新的標準exe檔案;

2.加入乙個winsock控制項;

3.加入兩個text框——txtx和txty;

4.加入如下**:

private sub form load()

tcpserver.localport = 1002

tcpserver.localhost = "klint"

tcpserver.remoteport = 1001

tcpserver.localhost = "servser"

tcpserver.listen

end sub

'連線檢查

private sub tcpklint connectionrequest

(byval requestid as long)

if tcpklint.state <> sckclosed then

tcpklint.close

tcpklint.accept requestid

end sub

接收資料

private sub tcpclient dataarrival

(byval bytestotal as long)

dim strdata as string

tcpklint.getdata strdata

if left(strdata,1)="x"then

txt x.text = strdata

else

txt y.text = strdata

endif

end sub

以上例程實現的是乙個非常簡單的點對點通訊,在此基礎上略加改造,可以形成功能複雜的實時計算機網路a-a互動通訊系統,用於控制、圖形**等。vb中winsock給我們提供了一種簡便的資料傳送方法,使我們得以輕鬆地實現網路點對點通訊

用Visual Basic製作安裝程式

安裝程式製作是做專案必不可少的一道工序,網上的安裝軟體很多,可以用五花八門來開形容了 在此筆者介紹乙個最簡單的安裝方法,就是用 自帶的打包程式進行打包,雖然比較普通,不過內部卻有不少竅門,相信這一點知道的人可能不多吧!請大家一定看到最後,好戲在後頭 好了,不廢話了,開始進入正題。執行打包嚮導,如下圖...

用Visual Basic設計更好的使用者介面

用 visual basic 設計更好的用 戶介面有時在乙個視窗中出現較多的控制件時,如果能嚮導式地建議使用者下一步該做什麼,不失為上策。在 visual basic的程式設計中,我們可以使用語句 object.setfaocus使我們希望的控制項得到輸入焦點,舉個例子 在form1中我們加入乙個按...

用棧實現佇列 用佇列實現棧

棧的特點 filo firstinlastout 僅能從棧頂插入,刪除元素。最基本的介面包括push 從棧頂壓入元素 pop 從棧頂彈出元素 佇列的特點 fifo firstinfirstout 僅能從隊頭刪除元素,從隊尾插入元素。最基本的介面包括enque 從隊尾插入元素 deque 從隊頭刪除元...