本例共兩個(gè)工程:一個(gè)驗(yàn)證端,一個(gè)測試端
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),陸豐企業(yè)網(wǎng)站建設(shè),陸豐品牌網(wǎng)站建設(shè),網(wǎng)站定制,陸豐網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,陸豐網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
簡單的實(shí)現(xiàn)方法就是用WinSock控件。在工程中添加組件選 Microsft WinSock 6.0 (記得是這個(gè),我計(jì)算機(jī)上沒有 VB),把該控件拖到工程窗體中,假設(shè)命名為:sckClient,把 sckClient 的Index 值設(shè)為0,協(xié)議類型設(shè)為TCP類型 并添加以下代碼(驗(yàn)證端代碼):
Option Explicit
Private Sub Form1_Load()
with sckClient(0)
.close
.LocalPort=1234
.Listen
End with
End Sub
Private Sub sckClient_ConnectionRequest(Index As Integer,ByVal requestID As Long)
Load sckClient(sckClient.Ubound +1)
With sckClient(sckClient.Ubound)
.close
.Accept requestID
End With
End Sub
Private Sub sckClient_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strBuffer As String
sckClient(Index).GetData strBuffer
'這里的 Select 語句可以根據(jù)自己的驗(yàn)證機(jī)制(邏輯)改動(dòng)
Select Case strBuffer
Case "AccountA"
sckClient(Index).SendData "OK"
Case "AccountB"
sckClient(Index).SendData "No"
Case Else
sckClient(Index).SendData "No"
End Select
End Sub
Private Sub sckClient_SendComplete(Index As Integer)
sckClient(Index).close
Unload sckClient(Index)
End Sub
客戶端工程也添加一個(gè) WinSock 控件,命名為 sckTest,協(xié)議類型也是 TCP, RemoteHost設(shè)為服務(wù)驗(yàn)證端的IP地址,端口設(shè)為服務(wù)驗(yàn)證端sckClient的端,本例為1234,在 Form1 中添加一個(gè)文本框 TextBox1 一按扭 Command1,并添加以下代碼:
Option Explicit
Private Sub Command1_Click()
if TextBox1.Text"" then
sckTest.connect
end if
End Sub
Private Sub sckTest_Connect()
sckTest.SendData TextBox1.Text
End Sub
Private Sub sckTest_DataArrival(ByVal bytesTotal As Long)
Dim strBuffer As String
sckTest.GetData strBuffer
if LCase(strBuffer)="ok" then
msgbox "驗(yàn)證成功!"
else
msgbox "驗(yàn)證失?。?
end if
sckTest.close
End Sub
由于我的計(jì)算機(jī)沒有裝VB,本例我沒有測試過,不過思路就這樣,如果有問題,請與我交流: QQ:20648424 E-Mail:post.yg@163.com
1、首先看控件區(qū)有無串口控件,表明串口控件并未被啟用,選擇工程→部件→Micosoft comm Control6.0選項(xiàng),點(diǎn)擊應(yīng)用,即可添加串口控件。
2、繪制兩個(gè)text控件用于存儲串口需要收發(fā)的數(shù)據(jù)。一個(gè)button控件用于發(fā)送指令,添加串口控件。
3、編寫程序:? ? Private Sub Command1_Click() MSComm1.Output = Text2.Text ‘發(fā)送數(shù)據(jù)End Sub Private Sub Form_Load()。
4、串口數(shù)據(jù)的收發(fā)都正常。
1.綁定的ip是服務(wù)器的ip地址,服務(wù)器是固定的,客戶端連接的是一個(gè)已知的服務(wù)器端。
2.客戶端的話,連接到服務(wù)器時(shí),服務(wù)器accept后,就可以獲得客戶端的連接信息,包括ip地址和端口。
我是學(xué)c的,在c語言中,socket-bind-listen-accept-....,在accept函數(shù)中有選項(xiàng),如下caddr結(jié)構(gòu)體中就存有accept后客戶端的ip地址
連接端口和傳輸方式等信息,clientsock[1]則為accept新的描述符,如你程序中soc2一樣
。
clientsock[1]
=
accept(sfd,(struct
sockaddr*)caddr,len);
vb中應(yīng)該也有類時(shí)的函數(shù),你網(wǎng)上好好找一下,或者看看相關(guān)書籍.
dim?sockf=CreateObject("MSWinsock.Winsock","sockp_")
Sub?sockp_DataArrival(ByVal?bytesTotal)
sockf.GetData(?da,VbString)
End?Sub