服务端
#include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <string.h> int main(void) { //初始化套接字 int listenfd = socket(AF_INET, SOCK_STREAM, 0); if (listenfd < 0) { perror("socket"); return -1; } struct sockaddr_in address; bzero(&address, sizeof(address)); address.sin_family = AF_INET; address.sin_addr.s_addr = htonl(INADDR_ANY); address.sin_port = htons(8080); int ret = bind(listenfd, (struct sockaddr *)&address, sizeof(address)); if (ret < 0) { perror("bind"); return -1; } ret = listen(listenfd, 5); if (ret < 0) { perror("listen"); return -1; } struct sockaddr_in client_address; socklen_t client_addrlength = sizeof(client_address); int connfd = accept(listenfd, (struct sockaddr *)&client_address, &client_addrlength); if (connfd < 0) { perror("accept"); } printf("The connection is successful : %d\n", connfd); char buf[1024]; ret = recv(connfd, buf, sizeof(buf) - 1, 0); if (ret <= 0) { perror("recv"); } printf("recv: %s", buf); close(connfd); close(listenfd); return 0; }