2013-03-29 47 views
1

我在本地主机的端口1234创建一个服务器。在客户端代码中,我启动了一个struct sockaddr_in server_addr并填充了服务器的IP地址和端口号。当我尝试将客户端连接到服务器时,我得到“地址已在使用”:如何将本地端口号分配给套接字?

绑定(client_sockfd,SERVER_ADDR,的sizeof SERVER_ADDR)

所以OS认为我是想使用相同的地址和端口号创建另一个服务器套接字。在这种情况下,我怎么能告诉操作系统server_addr是我想连接的另一个端点,并且它找到客户端套接字的另一个端口号?

回答

3

您需要使用bind()只为服务器和客户端使用

int connect(int socket, const struct sockaddr *address, socklen_t address_len);

见在Linux中本教程以获取有关插座:

http://www.linuxhowtos.org/C_C++/socket.htm

2

您使用连接(client_sockfd,SERVER_ADDR,的sizeof(..))来告诉我的客户端套接字应该连接到该服务器地址OS 。

如果是UDP套接字,也可以使用sendto(client_sockfd,... server_addr)调用来指定数据包应该到达此服务器地址。

相关问题