将端口号绑定到TCP套接字(outgoin)以发送数据包

binding a port number to a TCP socket (outgoin) to send packets

本文关键字:outgoin 数据包 套接字 口号 绑定 TCP      更新时间:2023-10-16

我知道将端口号绑定到TCP套接字并不容易,您将使用该套接字发送数据(因为系统通常将随机端口绑定到套接字)。

但我在一篇文章中读到,通过使用一些低级网络方法,您可以将端口号绑定到TCP套接字,然后使用它发送数据?

有人知道怎么做吗?

我使用的是c编程语言

在连接之前绑定它。

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));

实际上这很容易。只需像使用服务器一样使用绑定函数。

您可以简单地在客户端的connect()之前调用bind(),就像在服务器中在listen()之前调用bind()一样。没有什么比这更复杂的了。