zoukankan      html  css  js  c++  java
  • 010 socket定义服务器

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    
    namespace SocketServer
    {
        class Program
        {
            /// <summary>
            /// 服务器:
            ///     1、接收请求
            ///     2、接收数据
            ///     3、发送数据
            ///     4、断开连接
            /// </summary>
            /// 
            public static Socket serverSocket;
            static void Main(string[] args)
            {
                //AddressFamily 地址族
                //SocketType    套接字类型
                //ProtocolType  协议
                serverSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);//地址族,套接字类型,协议
                //Socket ServerSocket = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);//UDP使用Dgram数据报类型套接字
    
                //进行绑定
                //端口号范围0~65535
                IPEndPoint endPoint = new IPEndPoint(IPAddress.Any,9999);
                serverSocket.Bind(endPoint);
                serverSocket.Listen(10);//
                //开启一个线程接受客户端
                Thread thread = new Thread(listenClientConnect);
                thread.Start();
    
            }
            /// <summary>
            /// 监听客户端连接
            /// </summary>
            private static void listenClientConnect()
            {
                //等待 有客户端连接的时候 就会触发这个函数,返回一个客户端的socket对象
                Socket clientSocket = serverSocket.Accept();
                Console.WriteLine("客户端连接成功 信息:"+clientSocket.AddressFamily.ToString());
    
                //给客户端发送一个消息(发送字节数据)
                clientSocket.Send(Encoding.Default.GetBytes("服务器告诉你连接成功了"));//GetBytes字符串转字节数据
    
                //接受客户端发来的消息
                Thread recThread = new Thread(receiveClientMessage);
                recThread.Start(clientSocket);
            }
            /// <summary>
            /// 接受来自客户端的消息
            /// </summary>
            /// <param name="clientSocket"></param>
            private static void receiveClientMessage(object clientSocket)
            {
                Socket socket = clientSocket as Socket;//接收到的对象转换类型
                byte[] buffer = new byte[1024];
                //接收到数据的长度
                int length = socket.Receive(buffer);
                //显示出来
                Console.WriteLine(Encoding.Default.GetString(buffer, 0, length));
            }
        }
    }
  • 相关阅读:
    B Graph(异或MST)
    G. Xor-MST(边权为俩点值的异或值,求MST)
    H Harmony Pairs(找(大小)和(位数和大小)逆序的点对,数位dp)
    hdu6787(根据喜欢程度分配得最大总价值,最大费用最大流)
    Codeforces Global Round 2
    2019西北工业大学程序设计创新实践基地春季选拔赛(重现赛)
    Java EE学习笔记(九)
    Java EE学习笔记(八)
    Codeforces Round #549 (Div. 2)
    Codeforces Round #550 (Div. 3)
  • 原文地址:https://www.cnblogs.com/kubll/p/9022850.html
Copyright © 2011-2022 走看看