简单的TCP-Server
来源:互联网 发布:mac制作win8安装u盘 编辑:程序博客网 时间:2024/05/16 11:51
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <errno.h>int main(int argc, char *argv[]){ size_t len; int sk, talk, ret; char buff[1024] = {'\0'}; struct sockaddr_in server, client; sk = socket(AF_INET, SOCK_STREAM, 0); if(sk == -1){ printf("%s\n", strerror(errno)); return -1; } bzero(&server, sizeof(server)); server.sin_family = AF_INET; server.sin_port = htons(3000); server.sin_addr.s_addr = htonl(INADDR_ANY); ret = bind(sk, (struct sockaddr*)&server, sizeof(server)); if(ret != 0){ printf("%s\n", strerror(errno)); return -1; } ret = listen(sk, 5); if(ret != 0){ printf("%s\n", strerror(errno)); return -1; } bzero(&client, sizeof(client)); len = sizeof(client); talk = accept(sk, (struct sockaddr*)&client, (socklen_t *)&len); if(talk == -1){ printf("%s\n", strerror(errno)); return -1; } ret = send(talk, "Hello", strlen("Hello") + 1, 0); if(ret < 0){ printf("send error\n"); return -1; }else{ printf("the number sent %d bytes\n", ret); } ret = recv(talk, buff, sizeof(buff), 0); if(ret < 0){ printf("send error\n"); return -1; }else{ printf("the number read %d bytes\n", ret); } printf("%s\n", buff); close(talk); close(sk); return 0;}