#include #include #include #include #include int main(int argc, char const *argv[]) { // 1.创建客户端的通信套接字 int cfd = socket(AF_INET, SOCK_STREAM, 0); if(cfd == -1){ perror("client communication socket create failed"); return -1; } printf("create client communication socket succesed\n"); // 2.连接服务器的ip地址和port端口号 struct sockaddr_in saddr; saddr.sin_family = AF_INET; inet_pton(saddr.sin_family, "127.0.0.1", &saddr.sin_addr.s_addr); saddr.sin_port = htons(9999); int ret = connect(cfd, (struct sockaddr *)&saddr, sizeof(saddr)); if(ret == -1){ perror("client connect to server failed"); return -1; } printf("client connect to server with ip and port(sockaddr_in) successed\n"); printf("----------------------------------------------------------------------------------------------------------\n"); int num = 0; // 5.通信 while(1){ // 发送数据 char buff[1024]; sprintf(buff, "hello server...%d\n", num++); printf("client: %s\n", buff); send(cfd, buff, strlen(buff)+1, 0); // 接收数据 memset(buff, 0, sizeof(buff)); int len = recv(cfd, buff, sizeof(buff), 0); if(len > 0){ printf("server say: %s\n", buff); }else if(len == 0){ printf("server has disconnect.\n"); break; }else{ perror("call recv fail."); break; } sleep(2); } // 6.关闭文件描述符 close(cfd); return 0; }