zoukankan      html  css  js  c++  java
  • socket编程

    1、网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。

    建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
    2、客户端代码 //clientSocket.Close(); 用完记得关掉
     1  //建立连接 客户端
     2                 Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     3 //这里的值我写在全局了,FM_JTApiUrl是IP,FM_JTDKH是端口号
     4                 clientSocket.Connect(Global.FM_JTApiUrl, Convert.ToInt32(Global.FM_JTDKH));
     5                 //转json  doorinfo是需要往端口发送的信息
     6                 string sendStr = JsonConvert.SerializeObject(doorinfo);
     7                 byte[] sendBytes = Encoding.ASCII.GetBytes(sendStr);
     8 //这里是往端口发数据             
     9                 clientSocket.Send(sendBytes);
    10 //返回的信息 12288为接收的信息大小,可自行改动
    11                 string recStr = "";
    12                 byte[] recBytes = new byte[12288];
    13                 int bytes = clientSocket.Receive(recBytes, recBytes.Length, 0);
    14                 recStr += Encoding.ASCII.GetString(recBytes, 0, bytes);        
    View Code

    3、服务端代码

     1 //配置IP及端口 同上
     2             IPAddress ip = IPAddress.Parse(Global.FM_ApiUrl);
     3             IPEndPoint ipe = new IPEndPoint(ip, Convert.ToInt32(Global.FM_DKH));
     4 
     5             Socket sSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     6                 sSocket.Bind(ipe);
     7                 //监听端口
     8                 sSocket.Listen(0);
     9                 //建立连接
    10                 Socket serverSocket = sSocket.Accept();
    11 
    12                 string recStr = "";
    13                 byte[] recByte = new byte[12288];
    14                 int bytes = serverSocket.Receive(recByte, recByte.Length, 0);
    15                 recStr += Encoding.Default.GetString(recByte, 0, bytes);
    View Code

    注:发送或接收的时候最好写个日志,以方便以后查询bug

  • 相关阅读:
    JSON Web Token 使用详解
    Linux文件同步工具之rsync
    Centos7升级Git版本
    JSON Web Token 使用详解
    解决List遍历删除元素提示ConcurrentModificationException
    Spring Boot入门篇之配置Filter
    通过PLSQL Developer创建Database link,DBMS_Job,Procedure,实现Oracle跨库传输数据
    微信运动数据抓取(PHP)
    使用Redis Data Reveal(rdr)查看Redis中key占用内存空间
    Redis5.0-弃用方法名和替代方法名(php-redis 5以后废弃了一些方法名)
  • 原文地址:https://www.cnblogs.com/MycnBlogs7854/p/10470330.html
Copyright © 2011-2022 走看看