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

Ayo*_* M. 3 c c++ networking network-programming tcp

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

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

有没有人知道如何做到这一点?

我正在使用c编程语言

cni*_*tar 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));
Run Code Online (Sandbox Code Playgroud)


Dar*_*con 6

实际上这很容易.只需像使用服务器一样使用绑定功能.


caf*_*caf 6

您可以像bind()以前connect()在服务器中调用一样在客户端中调用bind()之前listen().没有比这更复杂的了.