我知道绑定端口号到 TCP套接字并不容易用于发送数据(因为系统通常将随机端口绑定到套接字)。
但我读了一篇文章,通过使用一些低级网络方法,您可以将端口号绑定到TCP套接字然后用它来发送数据?
有没有人知道如何做到这一点?
我正在使用c编程语言
答案 0 :(得分:10)
在连接之前绑定它。
s = socket(AF_INET, SOCK_STREAM, 0);
/* ... */
memset(&client_addr, 0, sizeof(client_addr));
client_addr.sin_family = AF_INET;
client_addr.sin_port = htons(22222);
if (bind(s, (struct sockaddr *) &client_addr, sizeof(client_addr)) < 0) {
perror("bind");
exit(1);
}
connect(s, (struct sockaddr *) &server_addr, sizeof(server_addr));
答案 1 :(得分:6)
实际上这很容易。只需使用bind功能,就像使用服务器一样。
答案 2 :(得分:6)
您只需在客户端bind()
之前拨打connect()
,就像在服务器bind()
之前调用listen()
一样。没有比这更复杂的了。