是不是我写的不对
是不是应该多个线程Accept 请求
但绑定到同一个端口的冲突怎么解决呢
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdbool.h>
char *copyright = "Nothing
=========================================================";
short int srv_port = 1520;
/********************************/
int main(int argc, char * argv[])
{
printf("%s\n", copyright);
int sockfd;
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd == -1) {
printf("Error 01: sockfd ");
exit(-1);
}
struct sockaddr_in server,their;
server.sin_family = AF_INET;
server.sin_port = htons(srv_port);
server.sin_addr.s_addr = INADDR_ANY;
memset(server.sin_zero, '\0', 8);
bind(sockfd, (struct sockaddr *)&server, sizeof(struct sockaddr));
printf("bind ip:%s\tport:%i\n",inet_ntoa(server.sin_addr.s_addr), srv_port);
char buf[4096];
int resize, the_len;
the_len = sizeof(struct sockaddr);
int i=0;
while(true){
resize = recvfrom(sockfd, buf, sizeof(buf)-1, 0,
(struct sockaddr *)&their, &the_len);
printf("%u\n",i);
i++;
//printf("%s\n", buf);
//printf("\t\t%s\n", inet_ntoa(their.sin_addr));
}
close(sockfd);
return 0;
}