C# Socket简单例子(服务器与客户端通信)_第1页
C# Socket简单例子(服务器与客户端通信)_第2页
C# Socket简单例子(服务器与客户端通信)_第3页
C# Socket简单例子(服务器与客户端通信)_第4页
C# Socket简单例子(服务器与客户端通信)_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C# Socket简单例子(服务器与客户端通信)这个例子只是简单实现了如何使用 Socket 类实现面向连接的通信。注意:此例子的目的只是为了说明用套接字写程序的大概思路,而不是实际项目中的使用程序。在这个例子中,实际上还有很多问题没有解决,如消息边界问题、端口号是否被占用、消息命令的解析问题等。下面是两个程序的代码,(两个程序均为控制台程序)注:多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCPIP协议交互提供了称为套接字(Socket)的接口。先发服务端的(Server)完整代码如下:引入命名空

2、间:using System.Net.Sockets;  using System.Net;  using System.Threading; namespace SocketServer        class Program                

3、;private static byte result = new byte1024;          private static int myProt = 8885;   /端口           static Socket ser

4、verSocket;          static void Main(string args)                        /服务器IP地址      

5、60;        IPAddress ip = IPAddress.Parse("");              serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,

6、0;ProtocolType.Tcp);              serverSocket.Bind(new IPEndPoint(ip, myProt);  /绑定IP地址:端口               serverSocket.Listen(10); 

7、0;  /设定最多10个排队连接请求               Console.WriteLine("启动监听0成功", serverSocket.LocalEndPoint.ToString();              /通过Clientsoket发送数据 &#

8、160;             Thread myThread = new Thread(ListenClientConnect);              myThread.Start();        

9、;      Console.ReadLine();                      / <summary>           / 监听客户端连接   &#

10、160;       / </summary>           private static void ListenClientConnect()                   

11、     while (true)                                Socket clientSocket = serverSocket.Accept();&#

12、160;                 clientSocket.Send(Encoding.ASCII.GetBytes("Server Say Hello");                  Thre

13、ad receiveThread = new Thread(ReceiveMessage);                  receiveThread.Start(clientSocket);               &#

14、160;                    / <summary>           / 接收消息           / </summary&g

15、t;           / <param name="clientSocket"></param>           private static void ReceiveMessage(object clientSocket)     &#

16、160;                  Socket myClientSocket = (Socket)clientSocket;              while (true)    

17、60;                           try                      

18、                  /通过clientSocket接收数据                       int receiveNumber = myCli

19、entSocket.Receive(result);                      Console.WriteLine("接收客户端0消息1", myClientSocket.RemoteEndPoint.ToString(), Encoding.ASCII.GetString(result, 0, rec

20、eiveNumber);                                    catch(Exception ex)        

21、                                Console.WriteLine(ex.Message);             

22、         myClientSocket.Shutdown(SocketShutdown.Both);                      myClientSocket.Close();       

23、0;              break;                                  

24、0;               以上是服务端(server)的完整代码。客户端(Client)的完整代码如下:引入命名空间:using System.Net;  using System.Net.Sockets;  using System.Threading;namespace SocketClient     &

25、#160;  class Program                private static byte result = new byte1024;          static void Main(string

26、0;args)                        /设定服务器IP地址               IPAddress ip = IPAddress.Parse("12

27、");              Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);            &

28、#160; try                                clientSocket.Connect(new IPEndPoint(ip, 8885); /配置服务器IP与端口    &#

29、160;              Console.WriteLine("连接服务器成功");                            catch

30、                                Console.WriteLine("连接服务器失败,请按回车键退出!");          

31、        return;                            /通过clientSocket接收数据          

32、60;    int receiveLength = clientSocket.Receive(result);              Console.WriteLine("接收服务器消息:0",Encoding.ASCII.GetString(result,0,receiveLength);      

33、        /通过 clientSocket 发送数据               for (int i = 0; i < 10; i+)           

34、                     try                            

35、60;           Thread.Sleep(1000);    /等待1秒钟                       string sendMessage = "client&

36、#160;send Message Hellp" + DateTime.Now;                      clientSocket.Send(Encoding.ASCII.GetBytes(sendMessage);                      Console.WriteLine("向服务器发送消息:0" + sendMessage);                        

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论