用UDP发送数据包时,如何取得发送端的端口呢?
用UDP发送数据包时,如果不和端口绑定,系统会自动分配一个端口,我如何取得这个端口呢? 问题点数:20、回复次数:16Top
1 楼Caps77(厉兵秣马)回复于 2005-04-07 10:35:08 得分 5
在接收端可以取Top
2 楼Super_Huai(坏坏)回复于 2005-04-07 10:36:26 得分 0
我想在本地程序取得,怎么做?Top
3 楼microgiant(技术已死,有事烧纸)回复于 2005-04-07 10:37:49 得分 0
晕,自己在sock_addr中去取。哈哈,我开我玩笑的,我没试过。呵呵。Top
4 楼Super_Huai(坏坏)回复于 2005-04-07 10:47:07 得分 0
这样是不行的,发送的时候,我们只需要socket和对方的SOCKADDR_IN,发送端的SOCKADDR_IN是无法得到的呀,。查资料说getsockname()可以取得,但我发现不行,不知到为什么Top
5 楼nuaawenlin(飘人)回复于 2005-04-07 11:11:23 得分 0
使用netstate命令Top
6 楼Super_Huai(坏坏)回复于 2005-04-07 11:43:29 得分 0
自己顶一下Top
7 楼gdy119(夜风微凉)回复于 2005-04-07 12:40:04 得分 5
getsockname() 是不是在发送数据后调用的啊?Top
8 楼toxyboy(不专业,我就顶,绝不误导别人!!)回复于 2005-04-07 14:46:59 得分 0
指定发送端口不更好吗?不指定就是随机取端口!
估计getsockname取不到!!
Top
9 楼Caps77(厉兵秣马)回复于 2005-04-07 15:02:19 得分 0
getsockname取不到Top
10 楼Super_Huai(坏坏)回复于 2005-04-07 17:05:01 得分 0
那有什么办法取得到呢?Top
11 楼Caps77(厉兵秣马)回复于 2005-04-07 17:10:20 得分 5
通过服务端取,然后再把端口号发回到客户端Top
12 楼gdy119(夜风微凉)回复于 2005-04-07 17:14:35 得分 0
楼上的是正解!Top
13 楼Super_Huai(坏坏)回复于 2005-04-07 17:18:16 得分 0
这个我也知道,但是我觉得应该在本地也可以取得到的!Top
14 楼lianglp(寻找黄金分割点)回复于 2005-04-07 17:29:39 得分 5
设定port为0进行邦定,再用getsockname()取本地端口号。
楼主可以试一下。Top
15 楼Super_Huai(坏坏)回复于 2005-04-07 17:57:37 得分 0
lianglp() :
你能给出代码吗?Top
16 楼Super_Huai(坏坏)回复于 2005-04-07 19:44:56 得分 0
自己搞定了,谢谢大家,散分!Top




