频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

VisualC#中托管Socket的实现方法(二)(1)

来源:qqread 作者: 出处:巧巧读书 2007-03-19 进入讨论组
     五.利用Socket来接收数据:
  Visual C#在使用Socket来介绍网络传送来的数据时,要解决下面三个问题,也是完成Visual C#使用Socket来接收数据的三个步骤:
  1.侦听网络,接受网络连接申请;
  2..获得用以接收数据的Socket实例,并以此实例接收远程主机发送来的数据;
  3.根据远程主机发送来的控制码,断开网络连接,并清除资源。
  此处接收接收数据,是上面介绍的【利用Socket来传送数据】传送来的数据。
  下面就是利用Socket来接收数据的具体实现步骤:
  1.启动Viisual Studio .Net,并新建一个Visual C#项目,项目名称为【利用Socket来接收数据】。
  2.把Visual Studio .Net的当前窗口切换到【Form1.cs(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应操作:
  一个ListBox组件,用以显示接收的数据。
  一个StausBar组件,用以显示接收端程序的运行状况。
  一个Button组件,名称为button1,并在这个组件被拖入窗体后,双击它,则系统会在Form1.cs文件中自动产生其Click事件对应的处理代码。
  3.【解决方案资源管理器】窗口中,双击Form1.cs文件,进入Form1.cs文件的编辑界面。
  4.以下面代码替代系统产生的InitializeComponent过程::
  private void InitializeComponent ( )
  {
  this.button1 = new System.Windows.Forms.Button ( ) ;
  this.listBox1 = new System.Windows.Forms.ListBox ( ) ;
  this.statusBar1 = new System.Windows.Forms.StatusBar ( ) ;
  this.SuspendLayout ( ) ;
  this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat ;
  this.button1.Location = new System.Drawing.Point ( 96 , 16 ) ;
  this.button1.Name = "button1" ;
  this.button1.Size = new System.Drawing.Size ( 80 , 34 ) ;
  this.button1.TabIndex = 0 ;
  this.button1.Text = "监听" ;
  this.button1.Click += new System.EventHandler ( this.button1_Click ) ;
  this.listBox1.ItemHeight = 12 ;
  this.listBox1.Location = new System.Drawing.Point ( 16 , 68 ) ;
  this.listBox1.Name = "listBox1" ;
  this.listBox1.Size = new System.Drawing.Size ( 258 , 172 ) ;
  this.listBox1.TabIndex = 1 ;
  this.statusBar1.Location = new System.Drawing.Point ( 0 , 251 ) ;
  this.statusBar1.Name = "statusBar1" ;
  this.statusBar1.Size = new System.Drawing.Size ( 292 , 22 ) ;
  this.statusBar1.TabIndex = 2 ;
  this.statusBar1.Text = "无连接" ;
  this.AutoScaleBaseSize = new System.Drawing.Size ( 6 , 14 ) ;
  this.ClientSize = new System.Drawing.Size ( 292 , 273 ) ;
  this.Controls.AddRange ( new System.Windows.Forms.Control[] {
   this.statusBar1 ,
   this.listBox1 ,
   this.button1} ) ;
  this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle ;
  this.MaximizeBox = false ;
  this.Name = "Form1" ;
  this.Text = "利用Socket来接收数据" ;
  this.ResumeLayout ( false ) ;
  }
  至此【利用Socket来接收数据】项目设计后的界面就完成了,具体如图02所示:
  VisualC#中托管Socket的实现方法(二)(1)
  图02:【利用Socket来接收数据】项目的设计界面
  5.把Visual Studio .Net的当前窗口切换到Form1.cs的代码编辑窗口,并在Form1.cs文件的开头,用下列导入命名空间代码替代系统缺省的导入命名空间代码。
  using System ;
  using System.Drawing ;
  using System.Collections ;
  using System.ComponentModel ;
  using System.Windows.Forms ;
  using System.Data ;
  using System.Net.Sockets ;
  //使用到TcpListen类
  using System.Net ;
  using System.Threading ;
  //使用到线程
  6.在Form1.cs中的class代码区中添加下列代码,下列代码的作用是定义全局变量和创建全局使用的实例:
  int port = 8000 ;
  //定义侦听端口号
  private Thread thThreadRead ;
  //创建线程,用以侦听端口号,接收信息
  private TcpListenertlTcpListen ;
  //侦听端口号
  private bool blistener = true ;
  //设定标示位,判断侦听状态
  private Socket stRead ;URl收藏 http://www.qqread.com/csharp/i303817.html进入讨论组讨论。
收藏此文】【 】【打印】【关闭
较早的文章:VisualC#中使用线程(3)

较新的文章:VisualStudio.NETTips1-5
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章