c#基于socket的cs模式的完整例子

c#基于socket的cs模式的完整例子

ID:32398516

大小:43.50 KB

页数:4页

时间:2019-02-04

c#基于socket的cs模式的完整例子_第1页
c#基于socket的cs模式的完整例子_第2页
c#基于socket的cs模式的完整例子_第3页
c#基于socket的cs模式的完整例子_第4页
资源描述:

《c#基于socket的cs模式的完整例子》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、所谓C/S模式中的C是Client,表示客户端,S是Server,表示服务器;还有另外一个模式B/S,B是Browser,表示浏览器,S是Server,表示服务器。C/S模式主要是指在Winform中进行开发,而B/S主要是在ASP.NET中进行开发。本节先介绍C/S模式,有关B/S模式将会在后面有关ASP.NET的章节中进行介绍。基于Socket服务器端实现本例主要是建立多客户端与服务器之间的数据传输,首先设计服务器。打开VS2008,在D:C#ch17目录下建立名为SocketServer的Windows应用程序。打开工程,往当前窗体中添加控件,如表1

2、7-6所示。表17-6  添加控件列表控  件NameTextListBoxlbInfoLabellabelButtonbutton1启动服务器设计好的界面如图17-2所示。接下来开始运用前面的知识设计服务器,主要分为以下步骤。(1)首先是对一些命名空间的包含,包括System.Net、System.Net.Sockets、System.IO和System.Threading。然后定义一系列的全局变量,如下所示。privateSockets;                        //定义Socket对象privateThreadth;        

3、                //客户端连接服务器的线程publicSocketcSocket;                    //单个客户端连接的Socket对象publicNetworkStreamns;                  //网络流publicStreamReadersr;                //流读取publicStreamWritersw;                //流写入privatedelegatevoidSetTextCallback();      //用于操作主线程控件(2)接下来是设计客户端连

4、接的管理,主要包括服务器与客户端之间的连接和收发数据问题,把它们放在一个函数Communication里,如下所示。publicvoidCommunication(){  while(true)  {      try      {        cSocket=s.Accept();            //用cSocket来代表该客户端连接        if(cSocket.Connected)            //测试是否连接成功        {          ns=newNetworkStream(cSocket);  //建立网络流,

5、便于数据的读取          sr=newStreamReader(ns);      //实例化流读取对象          sw=newStreamWriter(ns);      //实例化写入流对象          test();                    //从流中读取          sw.WriteLine("收到请求,允许连接");//向流中写入数据          sw.Flush();                  //清理缓冲区        }        else        {          Mes

6、sageBox.Show("连接失败");        }      }      catch(SocketExceptionex)      {        MessageBox.Show(ex.Message);        //捕获Socket异常      }      catch(Exceptiones)      {        MessageBox.Show("其他异常"+es.Message);    //捕获其他异常      }  }}//以下代码的用法在第16章有关线程的用法时曾提到过,主要用于从当前线程操作主线程中的控件,这里就

7、不在赘//述publicvoidsend(){  lbInfo.Items.Add(sr.ReadLine()+"");}publicvoidtest(){  SetTextCallbackstcb=newSetTextCallback(send);  Invoke(stcb);}(3)定义好与客户端的连接后,接下来需要利用线程来启动,双击“启动服务器”按钮,添加如下代码。button1.Enabled=false;s=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.T

8、cp);//创建Socket对象IPA

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。