第五步,使用vb.net实现客户端访问:
<span style="color: #0000ff;">Public <span style="color: #0000ff;">Class<span style="color: #000000;"> SynchronousSocketClient
<span style="color: #0000ff;">Protected <span style="color: #0000ff;">Shared port <span style="color: #0000ff;">As <span style="color: #0000ff;">Integer = <span style="color: #800080;">9501
<span style="color: #0000ff;">Protected <span style="color: #0000ff;">Shared host <span style="color: #0000ff;">As <span style="color: #0000ff;">String = <span style="color: #800000;">"<span style="color: #800000;">localhost<span style="color: #800000;">"
<span style="color: #0000ff;">Private</span> <span style="color: #0000ff;">Shared</span> sender <span style="color: #0000ff;">As</span><span style="color: #000000;"> Socket
</span><span style="color: #0000ff;">Public</span> <span style="color: #0000ff;">Shared</span> bytes(<span style="color: #800080;">1024</span>) <span style="color: #0000ff;">As</span> <span style="color: #0000ff;">Byte</span>
<span style="color: #008000;">'</span><span style="color: #008000;"> A way to the connect to the server</span>
<span style="color: #0000ff;">Public</span> <span style="color: #0000ff;">Shared</span> <span style="color: #0000ff;">Sub</span><span style="color: #000000;"> Main()
</span><span style="color: #0000ff;">If</span> (<span style="color: #0000ff;">IsNothing</span>(sender)) <span style="color: #0000ff;">OrElse</span> <span style="color: #0000ff;">Not</span> sender.Connected <span style="color: #0000ff;">Then</span>
<span style="color: #0000ff;">If</span> <span style="color: #0000ff;">Not</span> <span style="color: #0000ff;">IsNothing</span>(Form1.TextBox1.Text) <span style="color: #0000ff;">Then</span><span style="color: #000000;">
host </span>=<span style="color: #000000;"> Form1.TextBox1.Text
</span><span style="color: #0000ff;">End</span> <span style="color: #0000ff;">If</span>
<span style="color: #0000ff;">If</span> (Form1.TextBox2.Text) <span style="color: #0000ff;">Then</span><span style="color: #000000;">
port </span>=<span style="color: #000000;"> Form1.TextBox2.Text
</span><span style="color: #0000ff;">End</span> <span style="color: #0000ff;">If</span><span style="color: #000000;">
sender </span>=<span style="color: #000000;"> ConnectSocket(host,port)
</span><span style="color: #0000ff;">End</span> <span style="color: #0000ff;">If</span>
<span style="color: #0000ff;">End Sub</span>
<span style="color: #008000;">'</span><span style="color: #008000;"> send something to server</span>
<span style="color: #0000ff;">Public</span> <span style="color: #0000ff;">Shared</span> <span style="color: #0000ff;">Sub</span><span style="color: #000000;"> send()
</span><span style="color: #0000ff;">If</span> (<span style="color: #0000ff;">IsNothing</span>(sender)) <span style="color: #0000ff;">OrElse</span> <span style="color: #0000ff;">Not</span> sender.Connected <span style="color: #0000ff;">Then</span>
<span style="color: #0000ff;">If</span> <span style="color: #0000ff;">Not</span> <span style="color: #0000ff;">IsNothing</span>(Form1.TextBox1.Text) <span style="color: #0000ff;">Then</span><span style="color: #000000;">
host </span>=<span style="color: #000000;"> Form1.TextBox1.Text
</span><span style="color: #0000ff;">End</span> <span style="color: #0000ff;">If</span>
<span style="color: #0000ff;">If</span> (Form1.TextBox2.Text) <span style="color: #0000ff;">Then</span><span style="color: #000000;">
port </span>=<span style="color: #000000;"> Form1.TextBox2.Text
</span><span style="color: #0000ff;">End</span> <span style="color: #0000ff;">If</span><span style="color: #000000;">
sender </span>=<span style="color: #000000;"> ConnectSocket(host,port)
</span><span style="color: #0000ff;">End</span> <span style="color: #0000ff;">If</span>
<span style="color: #008000;">'</span><span style="color: #008000;"> Encode the data string into a byte array.</span>
<span style="color: #0000ff;">Dim</span> msg <span style="color: #0000ff;">As</span> <span style="color: #0000ff;">Byte</span>() =<span style="color: #000000;"> Encoding.ASCII.GetBytes(Form1.myContent.Text)
</span><span style="color: #008000;">'</span><span style="color: #008000;"> Send the data through the socket.</span>
<span style="color: #0000ff;">Dim</span> bytesSent <span style="color: #0000ff;">As</span> <span style="color: #0000ff;">Integer</span> =<span style="color: #000000;"> sender.Send(msg)
</span><span style="color: #008000;">'</span><span style="color: #008000;"> Receive the response from the remote device.</span>
<span style="color: #0000ff;">Dim</span> bytesRec <span style="color: #0000ff;">As</span> <span style="color: #0000ff;">Integer</span> =<span style="color: #000000;"> sender.Receive(bytes)
Console.WriteLine(</span><span style="color: #800000;">"</span><span style="color: #800000;">ServerReturn = {0}</span><span style="color: #800000;">"</span>,Encoding.ASCII.GetString(bytes,<span style="color: #800080;">0</span><span style="color: #000000;">,bytesRec))
Form1.infoText.Text </span>&= <span style="color: #800000;">"</span><span style="color: #800000;">ServerReturn = </span><span style="color: #800000;">"</span> & Encoding.ASCII.GetString(bytes,<span style="color: #800080;">0</span>,bytesRec) &<span style="color: #000000;"> vbNewLine
</span><span style="color: #0000ff;">End Sub</span>
<span style="color: #008000;">'</span><span style="color: #008000;"> connect initialize</span>
<span style="color: #0000ff;">Private</span> <span style="color: #0000ff;">Shared</span> <span style="color: #0000ff;">Function</span> ConnectSocket(<span style="color: #0000ff;">ByVal</span> host <span style="color: #0000ff;">As</span> <span style="color: #0000ff;">String</span>,<span style="color: #0000ff;">ByVal</span> port <span style="color: #0000ff;">As</span> <span style="color: #0000ff;">Integer</span>) <span style="color: #0000ff;">As</span> Socket <span style="color: #008000;">'</span><span style="color: #008000;">创建连接 </span>
<span style="color: #0000ff;">Dim</span> s <span style="color: #0000ff;">As</span> Socket = <span style="color: #0000ff;">Nothing</span>
<span style="color: #0000ff;">Dim</span> hostEntry <span style="color: #0000ff;">As</span> IPHostEntry = <span style="color: #0000ff;">Nothing</span>
<span style="color: #008000;">'</span><span style="color: #008000;">address = System.Net.IPAddress.Parse(host)</span>
<span style="color: #0000ff;">Dim</span> ipHostInfo <span style="color: #0000ff;">As</span> IPHostEntry =<span style="color: #000000;"> Dns.Resolve(host)
</span><span style="color: #0000ff;">Dim</span> address <span style="color: #0000ff;">As</span> IPAddress = ipHostInfo.AddressList(<span style="color: #800080;">0</span><span style="color: #000000;">)
</span><span style="color: #0000ff;">Dim</span> endPoint <span style="color: #0000ff;">As</span> <span style="color: #0000ff;">New</span><span style="color: #000000;"> IPEndPoint(address,port)
</span><span style="color: #0000ff;">Dim</span> tempSocket <span style="color: #0000ff;">As</span> <span style="color: #0000ff;">New</span><span style="color: #000000;"> Socket(endPoint.AddressFamily,SocketType.Stream,ProtocolType.Tcp)
tempSocket.Connect(endPoint)
</span><span style="color: #0000ff;">If</span> tempSocket.Connected <span style="color: #0000ff;">Then</span><span style="color: #000000;">
s </span>=<span style="color: #000000;"> tempSocket
Console.WriteLine(</span><span style="color: #800000;">"</span><span style="color: #800000;">Socket connected to {0}</span><span style="color: #800000;">"</span><span style="color: #000000;">,tempSocket.RemoteEndPoint.ToString())
Form1.infoText.Text </span>&= <span style="color: #800000;">"</span><span style="color: #800000;">Socket connected to </span><span style="color: #800000;">"</span> &<span style="color: #000000;"> tempSocket.RemoteEndPoint.ToString()
</span><span style="color: #0000ff;">End</span> <span style="color: #0000ff;">If</span>
<span style="color: #0000ff;">Return</span><span style="color: #000000;"> s
</span><span style="color: #0000ff;">End Function</span>
<span style="color: #008000;">'</span><span style="color: #008000;"> close socket</span>
<span style="color: #0000ff;">Public</span> <span style="color: #0000ff;">Shared</span> <span style="color: #0000ff;">Sub</span><span style="color: #000000;"> closeSocket()
</span><span style="color: #0000ff;">If</span> (sender.Connected) <span style="color: #0000ff;">Then</span><span style="color: #000000;">
Form1.infoText.Text </span>&= <span style="color: #800000;">"</span><span style="color: #800000;">Socket closed : </span><span style="color: #800000;">"</span> & sender.RemoteEndPoint.ToString() &<span style="color: #000000;"> vbNewLine
sender.Shutdown(SocketShutdown.Both)
sender.Close()
</span><span style="color: #0000ff;">End</span> <span style="color: #0000ff;">If</span>
<span style="color: #0000ff;">End Sub</span>
<span style="color: #0000ff;">End Class <span style="color: #008000;">'<span style="color: #008000;">SynchronousSocketClient
如上是访问连接服务器的代码,触发代码则是在另一个页面进行的,界面如下:

运行后效果如下:
 (编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|