socket TCP/UDP通信实验 TCP通信 TCP通信服务流程TCP客户等待的帆布鞋码TCP服务器代码 UDP通信 UDP通信服务流程UDP客户服眼睛大的小海豚码UDP服务器代码 TCP通信 TCP通信服务流程 TCP客户等待的帆布鞋码 #include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <strings.h>#include <arpa/inet.h>#include <unistd.h>#include <linux/in.h>#include <memory.h>#define PORT 8888int main() { int sock_service; struct sockaddr_in addr_service; sock_service = socket(AF_INET, SOCKgsdxh, 0); if (sock_service == -1) { perror("socked errorn"); return 0; } addr_service.sin_family = AF_INET; addr_service.sin_port = htons(PORT); addr_service.sin_addr.s_addr = htonl(INADDR_ANY); bzero(&(addr_service.sin_zero), 8); inet_pton(AF_INET, "127.0.0.1", &addr_service.sin_addr); connect(sock_service, (struct sockaddr*) &addr_service, sizeof(struct sockaddr)); char buffer[1024]; int size=0; while(1){ size=read(0,buffer,1024);//从终端读入数据 if(size>0){ write(sock_service,buffer,size);//发送数据 size=read(sock_service,buffer,1024); //从服务器得到数据 write(1,buffer,size);//在终端显示读到的数据 } } close(sock_service);} TCP服务器代码 #include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <strings.h>#include <arpa/inet.h>#include <unistd.h>#include <linux/in.h>#include <memory.h>#define PORT 8888int main() { int sock_service, sock_client; struct sockaddr_in addr_service, addr_client; //服务器socket sock_service = socket(AF_INET, SOCKgsdxh, 0); if (sock_service == -1) { perror("socked errorn"); return 0; } addr_service.sin_family = AF_INET; addr_service.sin_port = htons(PORT); addr_service.sin_addr.s_addr = htonl(INADDR_ANY); bzero(&(addr_service.sin_zero), 8); if (bind(sock_service, (struct sockaddr *) &addr_service, sizeof(struct sockaddr)) == -1) { perror("bind errorn"); return 0; }//绑定端口 if (listen(sock_service, 5) == -1) { perror("listen errorn"); return 0; }//监听端口 int addr_length = sizeof(struct sockaddr_in); sock_client = accept(sock_service, &addr_client, &addr_length); while (1) { if (sock_client == -1) { sock_client = accept(sock_service, &addr_client, &addr_length);//等待连接,并得到客户端信息 continue; } else { char buffer[1024]; int size = read(sock_client, buffer, 1024);//读取客户端发送的数据 if(size>0) { printf("message:"); write(1, buffer, size); sprintf(buffer, "recieved %d bytesn", size); write(sock_client, buffer, strlen(buffer)); } } } close(sock_client);} UDP通信 UDP通信服务流程