0
일부 programm의 포트 번호를 생성해야합니다. Google은 제로 포트 생성과 바인딩하면 사용되지 않는 포트를 바인딩합니다. 제로 포트를 바인딩하고 포트 번호를 기억하고 싶습니다. 이걸하려고? 하지만 netstat 내 programm 포트를 볼 수 없습니다. 내가 다른 오류가 표시되지 않는,보다bind (0)를 사용하여 고유 한 IP 포트 생성
bind(sfd, (struct sockaddr *) &my_addr, sizeof(my_addr))
기타 : 리눅스 2.6.27는
int sfd;
struct sockaddr_in my_addr;
sfd = socket(PF_INET , SOCK_STREAM, 0);
if (sfd == -1)
{
printf("socket error\n");
return -1;
}
memset(&my_addr, 0, sizeof(struct sockaddr_in));
my_addr.sin_family = AF_INET;
my_addr.sin_addr.s_addr = INADDR_ANY;
my_addr.sin_port = 0;
if (bind(sfd, (struct sockaddr_in *) &my_addr,
sizeof(struct sockaddr_in)) == -1)
printf("bind error\n");
if (listen(sfd, LISTEN_BACKLOG) == -1)
printf("listen error\n");
가 왜? 몇 밀리 초 후에 사용 가능하지 않을 수도 있습니다. 임의의 포트를 원한다면, 필요할 때마다 이전 포트가 아닌 이전 포트를 사용하십시오. – EJP
바인드는 2ms 동안 동일한 포트를 생성하지 않습니다. 타사 프로그램에서 포트 번호를 필요로 함 –