本文共 1077 字,大约阅读时间需要 3 分钟。
#include#include #include #include #include #include #include #include #include int InitSocket(){ int sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd == -1) return -1; struct sockaddr_in saddr; memset(&saddr, 0, sizeof(saddr)); saddr.sin_family = AF_INET; saddr.sin_port = htons(6000); saddr.sin_addr.s_addr = inet_addr("127.0.0.1"); if (bind(sockfd, (struct sockaddr *)&saddr, sizeof(saddr)) == -1) return -1; if (listen(sockfd, 5) == -1) return -1; return sockfd;}void* fun(void* arg){ int c = (int) arg; while(1) { char buff[128] = {0}; if (recv(c, buff, 127, 0) <= 0) break; printf("recv(%d)=%s\n", c, buff); send(c, "ok", 2, 0); } printf("a client is connected(%d)\n", c); close(c);}int main(){ struct sockaddr_in caddr; int sockfd = InitSocket(); assert(sockfd != -1); while(1) { int len = sizeof(caddr); int c = accept(sockfd, (struct sockaddr *)&caddr, (size_t*)&len); if (c < 0) continue; printf("accept c=%d\n", c); pthread_t id; pthread_create(&id, NULL, fun, (void*)c); } close(sockfd); exit(0);}
转载地址:http://qklg.baihongyu.com/