即时通讯

2018-05-18  本文已影响0人  程序萌

传输控制协议(TCP)

用nc来测试连接
客户端 nc 127.0.0.1 3000
服务端 nc -l 3000

socket:对应一个IP一个端口进行点对点通讯

1.  导入头文件
#import <sys/socket.h> //socket相关
#import <netinet/in.h>  //internet相关
#import <arpa/inet.h>   //地址解析协议相关
2. socket(创建)
     int socket(int, int, int);
    /**
     参数
     第一个int:domain:    协议域,AF_INET(IPV4的网络开发)
     第二个int:type:      Socket 类型,  SOCK_STREAM(TCP)/SOCK_DGRAM(UDP,报文)
     第三个int:protocol:  IPPROTO_TCP,协议,如果输入0,可以根据第二个参数,自动选择协议
     返回值
     socket,如果 > 0 就表示成功
     */
3. connection (连接到“服务器)
    connect(int, const struct sockaddr *, socklen_t)
    /**
     参数
     1> 客户端socket
     2> 指向数据结构sockaddr的指针,其中包括目的端口和IP地址
        服务器的"结构体"地址,C语言没有对象
     3> 结构体数据长度
     返回值
     0 成功/其他 错误代号
     */
4. write(发送数据)
    send(int, const void *, size_t, int)
    /**
     参数
     1> 客户端socket
     2> 发送内容地址 void * == id
     3> 发送内容长度
     4> 发送方式标志,一般为0
     返回值
     如果成功,则返回发送的字节数,失败则返回SOCKET_ERROR
      */
5. read (接收)
    recv(int, void *, size_t, int)
    /**
     参数
     第一个int :创建的socket
     void *:接收内容的地址
     size_t:接收内容的长度
     第二个int.:接收数据的标记 0,就是阻塞式,一直等待服务器的数据 
     返回值
     接收到的数据长度
     */
6. close
    close(int);
    int:就是创建的socket
上一篇 下一篇

猜你喜欢

热点阅读