zoukankan      html  css  js  c++  java
  • 用Socket API建立简易tcp服务端和客户端

    用Socket API建立简易TCP服务端、客户端

    • 用Socket API建立简易TCP服务端

      1. 建立一个socket
      2. 绑定接受客户端连接的端口bind
      3. 监听网络端口listen
      4. 等待接受客户端连接accept
      5. 向客户端发送一条数据send
      6. 关闭socket closesocket
      SOCKET sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);//SOCKET实际上返回一个UINT_PIR,但在windows下称之为套接字
          //int af/domain协议簇——AF_INET是ipv4、AF_INET6是ipv6
          //int type网络类型(蓝牙、数据报udp),这里应该用面向流的SOCK_STREAM
          //int protocol协议,这里用tcp协议的IPPROTO_TCP。当确定套接字的协议簇和类型时,这个参数值为0.但是当创建套接字时不知道要使用的协议簇和类型,这时候protocol参数起作用,确定协议的种类。
      //当socket创建套接字成功时,返回套接字。失败则返回“-1”。
      
      sockaddr_in _sin = {};//或者直接创建后用memset(&_sin,0,sizeof(sockaddr_in))
      _sin.sin_family = AF_INET;
      _sin.sin_port = htons(4567); //host to net unsigned short的缩写//atoi(s2)将char*转化为int类型
      _sin.sin_addr.s_un.S_addr = INADDR_ANY//inet_addr("127.0.0.1");
      if( bind(_sock, (sockaddr*)&_sin, sizeof(_sin)) != 0) return -1;//bind函数成功绑定端口返回0。
      
      //预留
      

      用Socket API建立简易TCP客户端

      1. 建立一个socket
      2. 连接服务器connect
      3. 接收服务器信息recv
      4. 关闭socket closesocket
  • 相关阅读:
    DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践
    UVA10071 Back to High School Physics
    UVA10071 Back to High School Physics
    UVA10055 Hashmat the Brave Warrior
    UVA10055 Hashmat the Brave Warrior
    UVA458 The Decoder
    UVA458 The Decoder
    HDU2054 A == B ?
    HDU2054 A == B ?
    POJ3414 Pots
  • 原文地址:https://www.cnblogs.com/ranbom/p/12364613.html
Copyright © 2011-2022 走看看