• 通过控制台实现 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();

    }

  • 相关阅读:
    HDU 1513 最长子序列
    HDU 3033 分组背包变形(每种至少一个)
    HDU 1712 分组背包
    深度学习
    《将博客搬至CSDN》
    UVa 10917 Dijkstra
    hdu 3839 Ancient Messages (dfs )
    LA 4255 UVa1423 拓扑排序
    poj 2515 差分序列,排列组合
    UVA 10054 the necklace 欧拉回路
  • 原文地址:https://www.cnblogs.com/jasonjiang/p/1764395.html
Copyright © 2020-2023  润新知