纳金网

标题: C#socket建立服务器并进行简单通信 [打印本页]

作者: may    时间: 2016-3-12 23:50
标题: C#socket建立服务器并进行简单通信

服务器端代码:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Net;
  7. using System.Net.Sockets;

  8. namespace Csharp_socket编程_TCP协议
  9. {
  10.     class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             //socket也是一个类,位于System.Net.Sockets下面
  15.             //1:创建一个socket
  16.             Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  17.             //2:绑定Ip地址和端口号117.25.188.1
  18.             IPAddress ipaddress = new IPAddress(new byte[]{117,25,190,168});
  19.             EndPoint point = new IPEndPoint(ipaddress,7788);//IPEndPoint类是对ip端口做了一层封装的类
  20.             tcpServer.Bind(point);//向操作系统申请一个可用的ip地址和端口号用于通信
  21.             //3:开始监听(等待客户端的连接)
  22.             Console.WriteLine("开始监听");/////////
  23.             tcpServer.Listen(100);//设置最大的连接数

  24.             Socket ClientSocket = tcpServer.Accept();//暂停当前线程知道有客户端连接进来才进行下面的代码,返回客户端的socket
  25.             Console.WriteLine("有客户端连入");///////

  26.             //4:使用返回的socket向客户端发送消息
  27.             string welcome = "welcome to you";
  28.             Console.WriteLine("向客户端发送消息" + welcome);///////
  29.             byte[] str = Encoding.UTF8.GetBytes(welcome);//利用这个方法将string型转化为byte型数组
  30.             ClientSocket.Send(str);//向客户端发送欢迎信息

  31.             //5:接收客户端发来的消息
  32.             byte[] data = new byte[1000];
  33.             int length = ClientSocket.Receive(data);
  34.             string receiveMessage = Encoding.UTF8.GetString(data, 0, length);
  35.             Console.WriteLine("收到客户端发来的消息:"+receiveMessage);



  36.             Console.ReadKey();


  37.         }
  38.     }
  39. }
复制代码
客户端代码:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Net;
  7. using System.Net.Sockets;

  8. namespace Csharp_socket编程_TCP协议_客户端
  9. {
  10.     class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             //1:创建socket
  15.             Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  16.             
  17.             //2:向服务器端发送连接请求
  18.             Console.WriteLine("向服务器端发送连接请求");//////
  19.             IPAddress ipaddress = IPAddress.Parse("117.25.190.168");//IPAddress.Parse可以把string类型的ip地址转化为ipAddress型
  20.             EndPoint point = new IPEndPoint(ipaddress, 7788);//通过ip地址和端口号定位要连接的服务器端
  21.             tcpClient.Connect(point);//建立连接
  22.             Console.WriteLine("连接到服务器");//////

  23.             //3:接收服务器端发来的消息
  24.             byte[] data = new byte[1000];
  25.             int length = tcpClient.Receive(data);//这里的byte数组用来接收数据,返回值length表示接收的数据长度
  26.             string message = Encoding.UTF8.GetString(data, 0, length);//把字节数组转化为字符串
  27.             Console.WriteLine("接收到服务器端的消息:" + message);

  28.             //4:向服务器端发送消息            
  29.             string messageToServer = Console.ReadLine();
  30.             Console.WriteLine("向服务器端发送消息:" + messageToServer);//////

  31.             tcpClient.Send(Encoding.UTF8.GetBytes(messageToServer));//向服务器端发送消息

  32.             Console.ReadKey();
  33.         }
  34.     }
  35. }
复制代码





欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5