📄 listener.c,v
字号:
head 1.1;access;symbols;locks; strict;comment @ * @;1.1date 2002.07.02.19.29.52; author rbraud; state Exp;branches;next ;desc@@1.1log@Initial revision@text@/*** listener.c -- a datagram sockets "server" demo*/#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <strings.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#include <sys/wait.h>#include <unistd.h>#define MAXBUFLEN 100int main(int argc , char * argv[]){ int sockfd; struct sockaddr_in my_addr; /* my address information */ struct sockaddr_in their_addr; /* connector's address information */ int addr_len, numbytes; char buf[MAXBUFLEN]; int MYPORT; if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { perror("socket"); exit(1); } if(argc!=2) { printf("format listener <port>\n"); exit(1); } MYPORT=atoi(argv[1]); my_addr.sin_family = AF_INET; /* host byte order */ my_addr.sin_port = htons(MYPORT); /* short, network byte order */ my_addr.sin_addr.s_addr = INADDR_ANY; /* automatically fill with my IP */ bzero(&(my_addr.sin_zero), 8); /* zero the rest of the struct */ if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) { perror("bind"); exit(1); }while(1){ addr_len = sizeof(struct sockaddr); if ((numbytes=recvfrom(sockfd,buf,MAXBUFLEN,0,(struct sockaddr *)&their_addr, (socklen_t*)&addr_len)) == -1) { perror("recvfrom"); numbytes = 0; } buf[numbytes] = '\0'; sendto(sockfd,buf,MAXBUFLEN,0,(struct sockaddr *)&their_addr,addr_len);}close(sockfd);}@
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -