实现协物业
11. 用下列代码替换中的Button1的Click事件对应的处理代码,下列代码功能是向远程主机的8000端口号提出TCP连接申请,并在连接建立后,初始化基础数据流:
Private Sub Button1_Click ( ByVal sender As ject , ByVal e As entArgs ) Handles ick
Dim ipRemote As IPAddress
Dim sHostName As String
Dim tcpClient As TcpClient
Try
ipRemote = rse ( xt )
Catch
ow ( \"输入的IP地址不合法!\" , \"错误提示!\" )
Return
\'判断给定的IP地址的合法性
End Try
Try
tcpClient = New TcpClient ( xt , 8000 )
\'对远程主机的8000端口提出TCP连接申请
nsStream = tStream ( )
\'通过申请,并获取传送数据的络基础数据流
swWriter = New StreamWriter ( nsStream )
\'使用获取的络基础数据流来初始化StreamWriter实例
abled = False
abled = True
tcpConnect = True
xt = \"已经连接!\"
Catch
ow ( \"无法和远程主机8000端口建立连接!\" , \"错误提示!\" )
Return
End Try
End Sub
12. 用下列代码替换中的Button2的Click事件对应的处理代码,下列代码功能是对基础数据流进行写操作,实现向远程主机传输文本数据:
Private Sub Button2_Click ( ByVal sender As ject , ByVal e As entArgs ) Handles ick
If ( xt \"\" ) Then
iteLine ( xt )
\'刷新当前数据流中的数据
ush ( )
xt = \"\"
Else
ow ( \"发送信息不能为空!\" , \"错误提示!\" )
End If
End Sub
我在想 13. 用下列代码替换中的Dispose过程,下面代码的作用是重新定义Dispose过程,在过程中判断TCP连接是否仍然建立,如果建立则向远程主机传送控制码,断开连接,并手动清除使用的资源,回收垃圾:
Protected Overloads Overrides Sub Dispose ( ByVal disposing As Boolean )
If tcpConnect Then
iteLine ( \"STOP\" )
\'发送控制码
ush ( )
\'刷新当前数据流中的数据
ose ( )
ose ( )
\'清除资源 ( )
End If
If disposing Then
If Not ( components Is Nothing ) Then
spose ( )
End If
End If
spose ( disposing )
End Sub
14. 至此【客户端程序】就完成了。在正确编译项目后。就可以选择局域中任二台计算机来测试了,一台运行客户端程序,一台运行服务器端程序。在服务器端程序运行后,单击【启动服务】按钮,启动服务后。在客户端程序的【服务器IP地址】文本框中输入络中运行服务器端程序主机对应的IP地址后,单击【连接】按钮,就和启动服务的服务器端程序建立TCP连接,此时就可以在客户端程序的【信息】文本框中输入文本信息后,单击【发送】按钮就能够把文本信息传送到服务器端了。图03和图04分别是客户端程序和服务器端程序运行后进行通讯时的界面:
五.总结:
虽然本文用Visual Basic .Net实现一个简单的基于TCP协议的络应用程序。但程序中使用的是NetworkStream作为载体,通过StreamWriter和StreamReader通过操作这个载体从而实现数据传输和接收。这种实现TCP协议方法虽然比较简单,但却无法回避NetworkStream作为络传输、接收数据载体的一个致命的缺陷,那就是NetworkStream只能传输基于文本类型的数据,如果要传输基于字节的数据,使用这种方法就勉为其难了。而套接字(Socket)就能够胜任这项工作,套接字不仅能够实现各种类型数据在络上的传输和接收,也是实现络中其他应用协议的关键。诸位若想真正成为络编程的高手,必须掌握Socket的使用方法。最后希望本文能够开启您编写络应用程序之门,对您掌握更深层次络编程有所帮助。
治疗斑秃的好方法辽源医院白癜风哪家医院好
西安人流最好的医院
-
细说被高加索犬咬伤之后的处理方法位置
不管是什么样的狗狗都是会有可能咬人的。不管这只狗是乖巧的还是调皮的,也不管它是小型犬还是大型犬,都是...[详细]
-
美容新手告诉你怎样处理斑点狗的毛发打结问位置
饲养斑点狗期间,总是会遇到毛发打结的情况,它的毛发打结会让饲主感觉很尴尬,因为毛发打结充分说明斑点狗...[详细]
-
苏格兰牧羊犬把内裤吃了怎么办位置
苏格兰牧羊犬一岁,70多斤,前天吃了条内裤,到现在都没见拉出来,不过其他吃饭喝水精神什么的都正常,该怎么...[详细]
-
观赏鱼水箱怎么过滤观赏鱼的过滤方法位置
现在很多地方都有观赏鱼,不仅仅是家里,还有公司、酒店等地方也有养观赏鱼。那么养观赏鱼需要注意的地方是...[详细]
-
高加索犬被毛日常梳理养护位置
导读:高加索犬被毛日常梳理养护,高加索犬是大型的猛犬,它们是生活在阿塞拜疆地区的一种大型的看护家畜的...[详细]