我有一个服务器:
./server portNumber
我有一个客户:
./client serverIpAddress
我在客户端只有服务器IP地址。我想连接到服务器套接字。但是每次 Server Port Number 都不一样。如何在客户端使用 BSD 套接字连接到服务器套接字?不可能吗?我必须知道服务器端口号吗?
简单使用 BSD 套接字:
int socket_desc;
struct sockaddr_in server;
//Create socket
socket_desc = socket(AF_INET , SOCK_STREAM , 0);
if (socket_desc == -1)
{
printf("Could not create socket");
}
server.sin_addr.s_addr = inet_addr(ipAddress);
server.sin_family = AF_INET;
server.sin_port = htons( ThisIsServerPortNumber );
//Connect to remote server
if (connect(socket_desc , (struct sockaddr *)&server , sizeof(server)) < 0)
{
puts("connect error");
return 1;
}
最佳答案
选择 port number 49152 和 65535 之间用于开发。如果您的想法成功,您需要注册一个介于 1024 和 49151 之间的端口号。从 0 到 1023 的端口号是众所周知的端口,例如端口 80 用于 HTTP 服务器。
TCP Port Service Multiplexer协议(protocol)旨在允许发现 TCP 服务器的端口号,但由于安全问题很少使用。
关于c - Bsd 套接字如何找到用于连接的服务器端口号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37370041/