LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1708|回复: 2

使用bind函数时如何知道随机绑定的端口号是多少啊?

[复制链接]
发表于 2005-4-28 10:01:47 | 显示全部楼层 |阅读模式
my_addr.sin_family = AF_INET;
        my_addr.sin_port = 0;
        my_addr.sin_addr.s_addr = INADDR_ANY;
        memset(&(my_addr.sin_zero),0,8);
       
        if (bind(s, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))== -1) {
                cout<<"bind error"<<endl;
        }
这样可以随机绑定一个本机的有效端口号,但是我怎么知道它绑定的是哪一个端口号呢?在网上看说使用connect就会用默认bind函数绑定的端口号发送,虽然这样可以得到随机绑定的端口,但是那是远程主机接收时可以得到,我想bind后本机做监听服务,而远程主机通过随机绑定的这个端口号访问,也就是我想知道不使用connect发送,如何知道刚刚本机bind随机绑定的端口号是什么,有什么方法么?谢谢大家了!
发表于 2005-4-28 10:08:28 | 显示全部楼层
man getsockname
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-28 11:01:01 | 显示全部楼层
多谢提醒,呵呵,搞定了!太谢谢了!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表