zoukankan      html  css  js  c++  java
  • 简单的同步Socket程序服务端


    首先,Socket是.Net提供的

    System.Net.Sockets命名空间的Scoket类为网络通信提供了一套丰富的方法和属性


    服务器按照Socket的基本流程

    先创建Socket

    在用Bind绑定IP地址和端口号

    之后用Listen等待客户端链接

    最后在while循环中调用Accept接收客户端的链接

    并回应消息


    using System;
    using System.Net;
    using System.Net.Sockets;
    
    class MainClass {
         public static void Main(string[] args) {
             Console.WriteLine("Hello World");
             //Socket
             Socket listenfd = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
             //Bind
             IPAddress ipAdr = IPAddress.Parse("127.0.0.1");
             IPEndPoint ipEp = new IPEndPoint(ipAdr,1234);
             listenfd.Bind(ipEp);
             //Listen
             listenfd.Listen(0);
             Console.WriteLine("[服务器]启动成功");
             while (true) {
                 //Accept
                 Socket connfd = listenfd.Accept();
                 Console.WriteLine("[服务器]Accept");
                 //Recv
                 byte[] readBuff = new byte[1024];
                 int count = connfd.Receive(readBuff);
                 string str = System.Text.Encoding.UTF8.GetString(readBuff,0,count);
                 Console.WriteLine("[服务器接收]" + str);
                 //Send
                 byte[] bytes = System.Text.Encoding.Default.GetBytes("serv echo " + str);
                 connfd.Send(bytes);
             }
         }
     }


    注释:

    1.Socket listenfd = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

    它的3个参数分别代表地址族、套接字类型和协议

    地址族指明是使用IPv4还是IPv6

    2.Bind(ipEp)

    将listenfd套接字绑定IP和端口。

    3.Listen(0)

    服务端开始监听,参数backlog制定队列中最多可容纳等待接受的连接数,0表示不受限制

    4.Accept

    服务器用来接收客户端链接。当没有客户端链接时,服务器程序会卡住,不会往下执行

    5.Receive

    服务器用来接收客户端数据

    6.Send

    服务器用来发送数据,参数为byte[]类型

    可用System.Text.Encoding.Default.GetBytes(string);

    将string类型转换为byte[]类型

  • 相关阅读:
    3. What’s New in Spring Security 4.2 spring security 4.2的新功能
    2. Introduction介绍
    1. Getting Started入门
    32. CAS Authentication
    Java序列化
    hive优化--数据倾斜优化
    hive优化之——控制hive任务中的map数和reduce数
    maven中引入jstl
    redis位操作
    Windows单机安装hadoop
  • 原文地址:https://www.cnblogs.com/fws94/p/7099857.html
Copyright © 2011-2022 走看看