zoukankan      html  css  js  c++  java
  • 通过控制台实现 socket 的简单的例子

    首先定义一个服务器端和一个客户端,同时引用命名空间:using System.Net; 和 using System.Net.Sockets;

    (还有要清楚一点:socket 是基于TCP 连接的,本身有通道,使用的时候只是new 一个就可以了)

    然后先实现服务器端:

    主要代码:

    static  void Main(string[] args)

    {

      Console.WriteLine("服务器");

      //new一个通道来实现客户端和服务器端的通信

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

      //创建一个侦听点

      IPEndPoint iep = new IPEndPoint(IPAdress.Any,20000);

      //绑定到通道上

      s.Bind(iep);

      //监听

      s.Listen(6);//允许挂起的数量,不能超过10

      //开始处理

      Socket worker = s.Accept();

      try

      {

        byte[] buf = new byte[1024];

        int count = worker.Receive(buf);

        string context = Encoding.GetEncoding("gb2312").GetString(buf,0,count);

        Console.WriteLine(context);

        worker.Send(Encoding.GetEncoding("gb2312").GetBytes("收到"));

      }

      catch

      {

        throw;

      }

      Console.Read();

    }

    实现客户端:

    主要代码:

    static void Main(string[] args)

    {

      Console.WriteLine("客户端");

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

      IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"),20000);

      //连接服务器

      s.Connect(iep);

      //发送信息

      string context ="Hello World!";

      s.Send(Encoding.GetEncoding("gb2312").GetByte(context));

      try

      {

        byte[] buf = new byte[1024];

        int count = s.Receive(buf);

        string aa = Encoding.GetEncoding("gb2312").GetString(buf,0,count);

        Console.WriteLine(aa);

      }

      catch

      {}

      Console.Read();

    }

  • 相关阅读:
    循环
    rugarch包与R语言中的garch族模型
    Logistic回归
    机器学习缺失值处理方法汇总
    pandas库介绍之DataFrame基本操作
    python中常用的九种预处理方法
    谁动了我的特征?——sklearn特征转换行为全记录
    使用sklearn优雅地进行数据挖掘
    使用sklearn做单机特征工程
    彻底解决matplotlib中文乱码问题
  • 原文地址:https://www.cnblogs.com/jasonjiang/p/1764395.html
Copyright © 2011-2022 走看看