Linux下的socket通信之TCP

发布时间 2023-12-25 10:36:38作者: Labant

一、客户端

  1、创建socket,Tcp套接字描述符

  int sockfd = socket(AF_INET, SOCK_STREAM, 0))

  2、配置服务器地址

  struct hostent *he = gethostbyname("192.168.2.2")

  3、绑定服务器地址到socket

bzero(&server, sizeof(server)); //把 socketaddr_in 对象置为空
    server.sin_family = AF_INET;  //AF_INET 是Ipv4协议
    server.sin_port = htons(PORT);  //host to net short byte order,配置服务器端口
    server.sin_addr = *((struct in_addr *)he->h_addr);  //hostent::h_addr就是hostent::h_addr_list[0]

  4、连接正在监听的PORT的服务器

  connect(sockfd, (struct sockaddr *)&server, sizeof(server))  //失败皆为 -1

2、注意事项

  1、在linux下,linux的socket的connect()和Qt中的QObject::connect()冲突,可以使用::全局作用于解决.

    eg:::connect(sockfd, (struct sockaddr *)&server, sizeof(server))