开发者

Checking for open ports in C/C++

There have been other questions regarding the subject of verifying the accessibility and accessibility of socket ports.

How would one go about looking for a port to listen on dynamically in C/C++?

The basic process I'开发者_开发知识库m trying to accomplish is this:

  1. Client starts
  2. Client finds open port XYZ and listens on it.
  3. Client transmits a basic 'I Am Here' message via UDP Datagrams to a server with the port information
  4. Client and Server can communicate.

I know you can accomplish something like this if you pick an arbitrary port number and try binding to it. If it fails, increment the number and try again until you get a successful 'bind'.

Is there a more elegant way to do this? It seems kind of hacky.


If you bind to port 0, a random port will be allocated. Then getsockname() may be used to find out the actual port used.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜