您的位置:软件 > 开发者网络 > 微软开发专栏 > Visual Studio.net专栏 > VB.net > 正文
Visual Basic.Net实现TCP协议
[文章信息]
作者:阿虎
时间:2003-12-29
出处:天极开发者网络
责任编辑:方舟
[文章导读]
本文的主要内容就来介绍在Visual Basic .Net实现基于TCP协议网络数据传送的一种简单的方法
advertisement
热点推荐
· 好友上线通知——QQ千里眼
· 解析Windows操作系统的管理
· 剑走偏锋——灵巧的旁注攻击
· Mail Notifier邮件提醒工具
· Linux操作系统网络应用解疑
[正文]

上一页  1 2 3 4 5 6  下一页

  二.Visual Basic .Net实现基于TCP协议数据传送程序的体系结构:

  在下面介绍的用Visual Basic .Net实现基于TCP协议的数据传送程序是由二个子程序组成的。也可以看成是服务器端程序和客户端程序,其中:服务器端程序的功能是侦听端口号,接收远程主要的TCP连接申请,并接收远程主机传送来的文字数据。另外一个子程序,也就是所谓的客户端程序,主要实现向网络的远程主机提出TCP连接申请,并在连接申请通过后,向远程主机传送文字数据。下面来详细介绍Visual Basic .Net实现TCP协议网络数据传送的服务器端程序和客户端程序的具体步骤。

  三.服务器端程序的具体实现步骤:

  服务器端程序的实现关键在于侦听端口号,接收远程主机的TCP连接申请,获得网络数据传输的基础数据流,并通过基础数据流接收数据。接收数据使用的是StreamReader中ReadLine方法,由于ReadLine方法是一个阻塞式的方法,所以在下面具体的实现步骤中,是接收数据是在创建的线程中完成的,具体可参阅下面实现步骤中的第十一和十二步。以下是Visual Basic .Net实现TCP协议客户端程序实现的具体步骤:

  1. 启动Visual Studio .Net。

  2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。

  3. 将【项目类型】设置为【Visual Basic项目】。

  4. 将【模板】设置为【Windows应用程序】。

  5. 在【名称】文本框中输入【服务器端程序】。

  6. 在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在"E:\VS.NET项目"目录中就产生了名称为"服务器端程序"的文件夹,并在里面创建了名称为"服务器端程序"的项目文件。

  7. 把Visual Studio .Net的当前窗口切换到【Form1.vb(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应的操作:

  一个Label组件。
  一个StatusBar组件。
  一个ListBox组件。
  一个Button组件,并在这个Button组件拖入Form1的设计窗体后,双击它,则系统会在Form1.vb文件分别产生这个组件的Click事件对应的处理代码。

  8. 按照表05所示调整窗体中各组件属性的数值:

组件类型 组件名称 属性 设置结果
Form Form1 Text 服务器端程序
Form1 MaximizeBox False
Form1 FormBorderStyle FixedSingle
Button Button1 Text 启动服务
  Button1 FlatStyle Flat
Label Label1 Text 服务尚未启动
StatusBar StatusBar1 Text 无连接!
表05:【服务器端程序】项目中组件设定数值表

  并按照图01中各组件的位置和排列顺序来调整设计窗体中的组件:


图01:【服务器端程序】项目的设计界面

  9. 把Visual Studio .Net的当前窗口切换到Form1.vb的代码编辑窗口,并在Form1.vb文件的最前面添加下列代码,下列代码在Form1.vb中导入程序中要使用的类所在的命名空间:

Imports System.Net.Sockets
'使用到TcpListen类
Imports System.Threading
'使用到线程
Imports System.IO
'使用到StreamReader类

  10. 在Form1.vb中创建各种可视组件的代码中添加下列代码,下列代码的作用是创建全局使用的实例和变量:

Private iPort As Integer = 8000
'定义侦听端口号
Private thThreadRead As Thread
'创建线程,用以侦听端口号,接收信息
Private tlTcpListen As TcpListener
'侦听端口号
Private blistener As Boolean = True
'设定标示位,判断侦听状态
Private nsStream As NetworkStream
'创建接收的基本数据流
Private srRead As StreamReader
'从网络基础数据流中读取数据
Private tcClient As TcpClient

  11. 在Form1.vb中的InitializeComponent过程之后添加下列代码,下列代码的作用是定义Listen过程,此过程的作用是侦听本地机的8000端口号,接受网络主机的TCP连接申请,并接收从建立申请的远程主机发送来的文本数据:

Private Sub Listen ( )
Try
 tlTcpListen = New TcpListener ( iPort )
 '以8000端口号来初始化TcpListener实例
 tlTcpListen.Start ( )
 '开始监听
 StatusBar1.Text = "正在监听..."
 tcClient = tlTcpListen.AcceptTcpClient ( )
 '通过TCP连接请求
 nsStream = tcClient.GetStream ( )
 '获取用以发送、接收数据的网络基础数据流
 srRead = New StreamReader ( nsStream )
 '以得到的网络基础数据流来初始化StreamReader实例
 StatusBar1.Text = "已经建立TCP连接!"
 '循环侦听
 While blistener
  Dim sMessage As String = srRead.ReadLine ( )
  '从网络基础数据流中读取一行数据
  If ( sMessage = "STOP" ) Then
   tlTcpListen.Stop ( )
   '关闭侦听
   nsStream.Close ( )
   srRead.Close ( )
   '释放资源
   StatusBar1.Text = "无连接!"
   thThreadRead.Abort ( )
   '中止线程
   Return
  Else
   '判断是否为断开TCP连接控制码
   Dim sTime As String = DateTime.Now.ToShortTimeString ( )
   '获取接收数据时的时间
   ListBox1.Items.Add ( sTime + " " + sMessage )
  End If
 End While
Catch ex As System.Security.SecurityException
 MessageBox.Show ( "侦听失败!" , "错误" )
End Try
End Sub


上一页  1 2 3 4 5 6  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 在VB.NET中应用SQLDMO
  • VB.NET实现五子棋的人工智能
  • VB.NET数据库编程中的图形处理
  • VB.NET数据库工具教程之四
  • VB.NET数据库工具教程之三
  • 使用VB.NET线程访问数据库
  • 利用.NET类将DTD插入XML文件
  • 利用VB.NET设计Web菜单组件
  • 让手机帮你抱得美人归
  • 光棍节、孙悟空 配件也能分公母
  • 好友上线通知——QQ千里眼
  • 解析Windows操作系统的管理
  • 史前巨鳄 超频三散热器
  • 明花有主 飞利浦LCD有奖活动完美收场
  • 剑走偏锋——灵巧的旁注攻击
  • 统统闪开,最超值5700LE登场
  • Advertisement