zoukankan      html  css  js  c++  java
  • Socket和SuperSocket入门

    目录

    一、Socket

    1、客户端

        /// <summary>
        /// 发起socket请求
        /// </summary>
        class Program
        {
            static void Main(string[] args)
            {
                try
                {
                    Console.WriteLine("启动一个Socket客户端链接");
    
                    int port = 2021;
                    string host = "127.0.0.1";//服务器端ip地址
    
                    IPAddress ip = IPAddress.Parse(host);
                    IPEndPoint ipe = new IPEndPoint(ip, port);
    
                    Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    clientSocket.Connect(ipe);
    
                    while (true)
                    {
                        Console.WriteLine("请输入发送到服务器的信息:");
                        string sendStr = Console.ReadLine();
                        if (sendStr == "exit")
                            break;
    
                        byte[] sendBytes = Encoding.ASCII.GetBytes(sendStr);
                        clientSocket.Send(sendBytes);
    
                        //receive message
                        string recStr = "";
                        byte[] recBytes = new byte[4096];
                        int bytes = clientSocket.Receive(recBytes, recBytes.Length, 0);
                        recStr += Encoding.ASCII.GetString(recBytes, 0, bytes);
                        Console.WriteLine($"服务器返回:{recStr}");
                    }
                    clientSocket.Close();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                Console.Read();
            }
        }
    View Code

    2、服务端

        class Program
        {
            static void Main(string[] args)
            {
                try
                {
                    Console.WriteLine("已经开启Socket服务端链接");
                    int port = 2021;
                    string host = "127.0.0.1";
    
                    IPAddress ip = IPAddress.Parse(host);
                    IPEndPoint ipe = new IPEndPoint(ip, port);
    
                    Socket sSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    sSocket.Bind(ipe);
                    sSocket.Listen(0);
                    Console.WriteLine("监听已经打开,请等待");
    
                    //收到消息  接受一个socket链接
                    Socket serverSocket = sSocket.Accept();
                    Console.WriteLine("连接已经建立。。。");
                    while (true)
                    {
                        string recStr = "";
                        byte[] recByte = new byte[4096];
                        int bytes = serverSocket.Receive(recByte, recByte.Length, 0);
                        recStr += Encoding.ASCII.GetString(recByte, 0, bytes);
                        Console.WriteLine("服务器端获得信息:{0}", recStr);
    
                        if (recStr.Equals("stop"))
                        {
                            serverSocket.Close();//关闭该socket对象
                            Console.WriteLine("关闭链接。。。。");
                            break;
                        }
    
                        //回发消息
                        Console.WriteLine("请输入回发消息。。。。");
                        string sendStr = Console.ReadLine(); //"send to client :hello world";
                        byte[] sendByte = Encoding.ASCII.GetBytes(sendStr);
                        serverSocket.Send(sendByte, sendByte.Length, 0);
    
                    }
                    sSocket.Close();//关闭server监听
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                Console.Read();
            }
        }
    View Code

    二、SuperSocket

    作者:chenze
    出处:https://www.cnblogs.com/chenze-Index/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    ElasticSearch实战系列一: ElasticSearch集群+Kinaba安装教程
    SpringBoot事物Transaction实战讲解教程
    SpringBoot整合Swagger和Actuator
    SpringBoot项目实现文件上传和邮件发送
    SpringBoot优雅的全局异常处理
    SpringCloud学习系列之七 ----- Zuul路由网关的过滤器和异常处理
    SpringBoot整合Redis使用Restful风格实现CRUD功能
    SpringCloud学习系列之六 ----- 路由网关Zuul基础使用教程
    SpringCloud学习系列之五-----配置中心(Config)和消息总线(Bus)完美使用版
    SpringCloud学习系列之四-----配置中心(Config)使用详解
  • 原文地址:https://www.cnblogs.com/chenze-Index/p/14736117.html
Copyright © 2011-2022 走看看