使用C套接字将客户端源端口设置为侦听端口

时间:2018-06-27 12:38:40

标签: c sockets networking

当前,我正在遵循Beej's Guide to Network Programming在同一应用程序中创建流服务器和客户端。基本上,它是一台同时发出连接请求(客户端)的服务器。我正在使用来自examples的client.c和server.c中的代码。

我打算做的是将客户端源端口设置为与服务器侦听端口相同(如果可能的话)。换句话说,侦听端口8888,并使用相同的8888端口与connect()建立出站连接。当前,默认设置是每次连接使用不同的随机端口。

  1. 可以使用相同的端口监听并建立连接,怎么做。
  2. 我读到每次都使用随机端口是一种常见的做法,但是它可能会用完端口或使用阻塞端口。这有多真实?

如果我想为所有连接设置固定端口,该如何解决?

1 个答案:

答案 0 :(得分:1)

可以通过在有问题的套接字上调用bind来设置客户端套接字的源端口。但是,如果您已经将服务器套接字绑定到该端口,则会出现问题。

用于TCP客户端套接字的确切端口号通常不重要。除非您有非常具体的要求,否则最好让操作系统选择可用的端口。