如何让系统在套接字编程中为我选择端口号?
How to make system choose port no for me in socket programming?
如何让系统在 c 中的 connect() 调用中为我选择端口号 下面是我的代码,其中我使用 5000 作为端口号,问题是每次我都必须继续更改端口号,因为它抛出异常为 ?
听:地址已被使用
如何摆脱这个我想在以后不做任何更改的情况下修复端口号,这可能吗?
int main(void)
{
int sockfd = 0,n = 0;
char recvBuff[1024];
struct sockaddr_in serv_addr;
memset(recvBuff, '0' ,sizeof(recvBuff));
if((sockfd = socket(AF_INET, SOCK_STREAM, 0))< 0)
{
printf("\n Error : Could not create socket \n");
return 1;
}
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(5000); //how to skip Address already in use?
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
if(connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr))<0)
{
printf("\n Error : Connect Failed \n");
return 1;
}
签入 IANA Port number Listing,选择之前未分配或注册的。在您的例子中,端口号 5000
是一个已经注册并用于 commplex-main
的 TCP 端口。
注意:不要选择 0 - 1023
之间的端口,因为它们被系统进程使用。
如何让系统在 c 中的 connect() 调用中为我选择端口号 下面是我的代码,其中我使用 5000 作为端口号,问题是每次我都必须继续更改端口号,因为它抛出异常为 ?
听:地址已被使用
如何摆脱这个我想在以后不做任何更改的情况下修复端口号,这可能吗?
int main(void)
{
int sockfd = 0,n = 0;
char recvBuff[1024];
struct sockaddr_in serv_addr;
memset(recvBuff, '0' ,sizeof(recvBuff));
if((sockfd = socket(AF_INET, SOCK_STREAM, 0))< 0)
{
printf("\n Error : Could not create socket \n");
return 1;
}
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(5000); //how to skip Address already in use?
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
if(connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr))<0)
{
printf("\n Error : Connect Failed \n");
return 1;
}
签入 IANA Port number Listing,选择之前未分配或注册的。在您的例子中,端口号 5000
是一个已经注册并用于 commplex-main
的 TCP 端口。
注意:不要选择 0 - 1023
之间的端口,因为它们被系统进程使用。