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();

    }

  • 相关阅读:
    AX 2009 实现对display 方法过滤
    AX 2009实现数据验证方法
    AX 2009 实现outlook发送邮件并带多个附件
    AX 2009 销售订单导入导出
    Mixin技术与分布类编程
    关于python装饰器的总结
    作为软件工程师,你必须知道的20个常识
    Python装饰器基础语法总结
    如何成为一名黑客(转)
    python的对象和类
  • 原文地址:https://www.cnblogs.com/jasonjiang/p/1764395.html
Copyright © 2011-2022 走看看