使用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 從隊頭刪除元...