如何得知本地接收端口号是多少?(100分)

  • 主题发起人 主题发起人 snappy
  • 开始时间 开始时间
S

snappy

Unregistered / Unconfirmed
GUEST, unregistred user!
采用API UDP建立通讯,从服务器端可以分解出客户端的接收端口,但如何在客户端分解出接收端口?(建立通讯后,系统会为客户端分配一个端口号,即如何得到这个端口号?)
 
在dos命令下打
netstat -an
能看到
 
对不起,需要在程序中实现。
 
方法有两种,
1、自己指定通信端口:用socket函数创建一个UDP套接字之后,再用bind函数指出通信端口
2、用getsockname API函数获通信端口的信息。
 
分解数据包头
 
getsockname
好像只能用于TCP/IP,我用他解析出的端口和服务器的不一致~~
 
汗,实在不知你想怎么样
>>采用API UDP建立通讯,从服务器端可以分解出客户端的接收端口,但如何在客户端分解
>>出接收端口?(建立通讯后,系统会为客户端分配一个端口号,即如何得到这个端口号?)

我只能说getsocketname能解决你上面的问题。
 
谢谢你的回答。我的问题是 这样的:
当服务器通过Recvfrom接收信息后,可以从SockAddrIn.sin_port得到发送信息的客户端的端口,并通过这个端口即可向客户端回信息,我就是想在客户端得到和服务器所得到的一样的端口号。
我也用GetSockName试了一下,但得到的并非和服务器一样的端口号,可能是我方法不对,麻烦你给你写个简单的例子好吗?
 
网络环境?你是怎样知道不一样了?
 
我在服务器端接收数据时记录了一下客户端发送的端口号,
然后在客户端再记录检测到的端口号。。。。
就知道不一样了啊。。
 
同意Writer的观点,实在不行你干脆bind一下端口吧。按理getsockname是可以得到端口号的,我怀疑你在客户端检测端口的方法不对。
 
是哦,我也怀疑呢。。。
可是正确的方法又是怎么样的呢?麻烦哪位给个例程啊~~
 
同意Writer的观点,实在不行你干脆bind一下端口吧。按理getsockname是可以得到端口号的,我怀疑你在客户端检测端口的方法不对。
 
多人接受答案了。
 
后退
顶部