- 论坛徽章:
- 0
|
代码是用网上的:\r\n#include <sys/types.h>\r\n#include <sys/socket.h>\r\n#include <string.h>\r\n#include <netinet/in.h>\r\n#include <stdio.h>\r\n#include <stdlib.h>\r\n\r\n#define MAXLINE 80\r\n#define SERV_PORT 8888\r\n\r\nvoid do_echo(int sockfd, struct sockaddr *pcliaddr, socklen_t clilen)\r\n{\r\nint n;\r\nsocklen_t len;\r\nchar mesg[MAXLINE];\r\n\r\nfor(; \r\n{\r\nlen = clilen;\r\n/* waiting for receive data */\r\nn = recvfrom(sockfd, mesg, MAXLINE, 0, pcliaddr, &len);\r\n/* sent data back to client */\r\nsendto(sockfd, mesg, n, 0, pcliaddr, len);\r\n}\r\n}\r\n\r\nint main(void)\r\n{\r\nint sockfd;\r\nstruct sockaddr_in servaddr, cliaddr;\r\n\r\nsockfd = socket(AF_INET, SOCK_DGRAM, 0); /* create a socket */\r\n\r\n/* init servaddr */\r\nbzero(&servaddr, sizeof(servaddr));\r\nservaddr.sin_family = AF_INET;\r\nservaddr.sin_addr.s_addr = htonl(INADDR_ANY);\r\nservaddr.sin_port = htons(SERV_PORT);\r\n\r\n/* bind address and port to socket */\r\nif(bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) == -1)\r\n{\r\nperror(\"bind error\" ;\r\nexit(1);\r\n}\r\n\r\ndo_echo(sockfd, (struct sockaddr *)&cliaddr, sizeof(cliaddr));\r\n\r\nreturn 0;\r\n} |
|