如何在socket编程中让系统为我选择端口号?

时间:2015-01-31 09:42:02

标签: sockets port

如何在我的代码中使用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;
        }

1 个答案:

答案 0 :(得分:1)

签入IANA Port number Listing,选择未分配或先前注册的。在您的情况下,端口号5000是已注册并用于commplex-main的TCP端口。

注意:不要选择系统进程使用的0 - 1023之间的端口。