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

    }

  • 相关阅读:
    字符串常量池
    JDK1.8-java.lang.Object类源码阅读
    请给你的Mysql(InnoDB)表加上主键吧
    java线程占多大的内存,占哪里的内存?
    c# 多线程
    c# 遍历文件夹及其所有文件
    T-SQL 查询语句总结
    SQL Server使用LIKE运算符进行匹配查询
    sql server中关于批处理与脚本的简单介绍
    关于SQL Server数据表的五中约束
  • 原文地址:https://www.cnblogs.com/jasonjiang/p/1764395.html
Copyright © 2011-2022 走看看