我正在开发一个小型 C++ 程序。现在的目标是绑定 TCP 套接字。我目前正在研究 Arch Linux。
这是我当前编写的代码。
#include <iostream>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main() {
sockaddr_in sockaddr {};
sockaddr.sin_family = AF_INET;
sockaddr.sin_port = 8080;
sockaddr.sin_addr.s_addr = INADDR_ANY;
int sockfd = socket(sockaddr.sin_family, SOCK_STREAM, 0);
bind(sockfd, (struct sockaddr *) &sockaddr, sizeof(INADDR_ANY));
}
绑定函数应该采用以下参数:
它几乎看起来像 C 风格的转换,但我们传入了对
sockaddr_in
结构的引用。这是获取结构体,然后对其进行强制转换并取消引用该变量吗?任何帮助了解这里发生的事情将不胜感激。