es; int status; int sockfd; int connFd; struct sockaddr_in cliAddr; int sendSta; char *msg; if (argc != 2) { fprintf(stderr, "Usage: Not found Read File"); return 1; } memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; status = getaddrinfo(NULL, SERVPORT, &hints, &res); if (status != 0) { fprintf(stderr, "getaddrinfo, fail!"); return 2; } sockfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol); bind(sockfd, res->ai_addr, res->ai_addrlen); listen(sockfd, 5); printf("======== Please Wait Client =========\n"); while(1) { // loop forever! char ipstr[INET_ADDRSTRLEN]; void *addr; int len = sizeof(cliAddr); connFd = accept(sockfd, (struct sockaddr *)&cliAddr, &len); /* View Client IP */ struct sockaddr_in *ipv4 = (struct sockaddr_in *)&cliAddr; addr = &(ipv4->sin_addr); inet_ntop(AF_INET, addr, ipstr, sizeof(ipstr)); printf("client: %s\n", ipstr); /* Copy Data */ msg = "Hello world!"; sendSta = send(connFd, msg, strlen(msg), 0); close(connFd); } close(sockfd); return 0; }
摘自 xiaobin_HLJ80的专栏
|