zoukankan      html  css  js  c++  java
  • C# socket demo

    1. 服务器端代码

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Net;
     5 using System.Net.Sockets;
     6 using System.Text;
     7 using System.Threading;
     8 using System.Threading.Tasks;
     9 
    10 namespace Sever
    11 {
    12     class Program
    13     {
    14         private static Socket severSocket = null;
    15 
    16         /// <summary>
    17         /// 服务端程序
    18         /// 1. 新建 socket,并绑定端口
    19         /// 2. 接收客户端连接
    20         /// 3. 给客户端发送信息
    21         /// 4. 接收客户端信息
    22         /// 5. 断开连接
    23         /// </summary>
    24         /// <param name="args"></param>
    25         static void Main(string[] args)
    26         {
    27             severSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    28             IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, 9999);
    29             severSocket.Bind(endPoint);                 // 绑定
    30             severSocket.Listen(10);                     // 设置最大连接数
    31             Console.WriteLine("开始监听");
    32             Thread thread = new Thread(ListenClientConnect);        // 开启线程监听客户端连接
    33             thread.Start();
    34             Console.ReadKey();
    35         }
    36 
    37         /// <summary>
    38         /// 监听客户端连接
    39         /// </summary>
    40         private static void ListenClientConnect()
    41         {
    42             Socket clientSocket = severSocket.Accept();         // 接收客户端连接
    43             Console.WriteLine("客户端连接成功 信息: " + clientSocket.AddressFamily.ToString());
    44             clientSocket.Send(Encoding.Default.GetBytes("你连接成功了"));
    45             Thread revThread = new Thread(ReceiveClientManage);
    46             revThread.Start(clientSocket);
    47         }
    48 
    49         private static void ReceiveClientManage(object clientSocket)
    50         {
    51             Socket socket = clientSocket as Socket;
    52             byte[] buffer = new byte[1024];
    53             int length = socket.Receive(buffer);        // 从客户端接收消息
    54             Console.WriteLine("收到消息:" + Encoding.Default.GetString(buffer));
    55         }
    56     }
    57 }

    2. 客户端代码

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Net;
     5 using System.Net.Sockets;
     6 using System.Text;
     7 using System.Threading.Tasks;
     8 
     9 namespace client
    10 {
    11     /// <summary>
    12     /// 客户端程序
    13     /// 1. 新建 Socket
    14     /// 2. 连接服务器
    15     /// 3. 接收服务器信息
    16     /// 4. 向服务器发送信息
    17     /// </summary>
    18     class Program
    19     {
    20         private static Socket clientSocket = null;
    21 
    22         static void Main(string[] args)
    23         {
    24             clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    25             // 客户端不需要绑定, 需要连接
    26             IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9999);   // 端口号要与服务器对应
    27             clientSocket.Connect(endPoint);
    28             Console.WriteLine("连接到服务器");
    29             // 接收服务器信息
    30             byte[] buffer = new byte[1024];
    31             int length = clientSocket.Receive(buffer);
    32             Console.WriteLine("收到消息: " + Encoding.Default.GetString(buffer));
    33             // 向服务器发送消息
    34             clientSocket.Send(Encoding.Default.GetBytes("你好服务器"));
    35             Console.ReadKey();
    36         }
    37     }
    38 }

    3. 运行截图

     

  • 相关阅读:
    除了类 Excel, SpreadJS 表格控件还能为系统开发带来什么价值?
    纯前端表格控件SpreadJS V14.0发布:组件化编辑器+数据透视表
    攻克金融系统开发难点,借助SpreadJS实现在线导入Excel自定义报表
    50.Pyinstaller打包时出现:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce...
    centos 查看日志
    TP5.1 控制器(基类)
    tp5.1 微信支付、支付宝、招商支付(Payment)
    TP5.1 发送邮件
    tp5.1 模型集成
    TP5.1 阿里云短信
  • 原文地址:https://www.cnblogs.com/coderJiebao/p/CSharp03.html
Copyright © 2011-2022 走看看