C#网络编程服务器端程序设计浅析
专业领域包括网站设计、成都做网站、商城系统网站开发、微信营销、系统平台开发, 与其他网站设计及系统开发公司不同,创新互联的整合解决方案结合了帮做网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,为客户提供全网互联网整合方案。
在下面接受的程序中,我们采用的是异步阻塞的方式。
C#网络编程服务器端程序设计(1).首先要要在给定的端口上面创建一个"tcpListener"对象侦听网络上面的请求。当接收到连结请求后通过调用"tcpListener"对象的"AcceptSocket"方法产生一个用于处理接入连接请求的Socket的实例。下面是具体实现代码:
- //创建一个tcpListener对象,此对象主要是对给定端口进行侦听
- tcpListener = new TcpListener ( 1234 ) ;
- //开始侦听
- tcpListener.Start ( ) ;
- //返回可以用以处理连接的Socket实例
- socketForClient = tcpListener.AcceptSocket ( ) ;
C#网络编程服务器端程序设计(2).接受和发送客户端数据:
此时Socket实例已经产生,如果网络上有请求,在请求通过以后,Socket实例构造一个"NetworkStream"对象,"NetworkStream"对象为网络访问提供了基础数据流。我们通过名称空间"System.IO"中封装的二个类"StreamReader"和"StreamWriter"来实现对"NetworkStream"对象的访问。其中"StreamReader"类中的ReadLine ( )方法就是从"NetworkStream"对象中读取一行字符;"StreamWriter"类中的WriteLine ( )方法就是对"NetworkStream"对象中写入一行字符串。从而实现在网络上面传输字符串,下面是具体的实现代码:
- try
- {
- //如果返回值是"true",则产生的套节字已经接受来自远方的连接请求
- if ( socketForClient.Connected )
- {
- ListBox1.Items.Add ( "已经和客户端成功连接!" ) ;
- while ( true )
- {
- //创建networkStream对象通过网络套节字来接受和发送数据
- networkStream = new NetworkStream ( socketForClient ) ;
- //从当前数据流中读取一行字符,返回值是字符串
- streamReader = new StreamReader ( networkStream ) ;
- string msg = streamReader.ReadLine ( ) ;
- ListBox1.Items.Add ( "收到客户端信息:" + msg ) ;
- streamWriter = new StreamWriter ( networkStream ) ;
- if ( textBox1.Text != "" )
- {
- ListBox1.Items.Add ( "往客户端反馈信息:" + textBox1.Text ) ;
- //往当前的数据流中写入一行字符串
- streamWriter.WriteLine ( textBox1.Text ) ;
- //刷新当前数据流中的数据
- streamWriter.Flush ( ) ;
- }
- }
- }
- }
- catch ( Exception ey )
- {
- MessageBox.Show ( ey.ToString ( ) ) ;
- }
C#网络编程服务器端程序设计(3).***别忘了要关闭所以流,停止侦听网络,关闭套节字,具体如下:
- //关闭线程和流
- networkStream.Close ( ) ;
- streamReader.Close ( ) ;
- streamWriter.Close ( ) ;
- _thread1.Abort ( ) ;
- tcpListener.Stop ( ) ;
- socketForClient.Shutdown ( SocketShutdown.Both ) ;
- socketForClient.Close ( ) ;
C#网络编程服务器端程序设计的基本内容就向你介绍到这里,希望对你了解和学习C#网络编程服务器端程序设计有所帮助。
【编辑推荐】
本文名称:C#网络编程服务器端程序设计浅析
链接URL:http://www.shufengxianlan.com/qtweb/news2/245352.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联