gpt4 book ai didi

C:错误端口上的套接字绑定(bind)

转载 作者:行者123 更新时间:2023-12-02 07:12:46 26 4
gpt4 key购买 nike

我有一个监听端口的 C 代码,但它监听了错误的端口。

这是在 .h 文件中定义的:

#define PHANTASIA_PORT 2101

socket :
int the_socket, error, on=1;

/* create a socket */
errno = 0;
if ((the_socket=socket(AF_INET, SOCK_STREAM, 0)) == -1) {

sprintf(error_msg,
"[0.0.0.0:?] Socket creation failed in Do_init_server_socket: %s\n",
strerror(errno));

Do_log_error(error_msg);
exit(SOCKET_CREATE_ERROR);
}

error = setsockopt(the_socket, SOL_SOCKET, SO_REUSEADDR,
(char *) &on, sizeof(on));

这是它的绑定(bind)方式:
    /* set up the bind address */
bind_address.sin_family = AF_INET;
bind_address.sin_addr.s_addr = INADDR_ANY;
bind_address.sin_port = PHANTASIA_PORT;

/* bind to that socket */
error = bind(the_socket, (struct sockaddr *) &bind_address,
sizeof(bind_address));
error = listen(the_socket, SOMAXCONN);

但是当它运行时, lsof 报告:
phantasia  2400     root    4u  IPv4 2024436       TCP *:13576 (LISTEN)

当我在定义中将端口更改为 2100 时,它改为监听:
phantasia  2266     root    4u  IPv4 2021315       TCP *:13320 (LISTEN)

这是一些旧代码,但在编译时没有任何警告或错误。也许有些事情在我脑海中浮现。绑定(bind)时我有一个调试日志,它报告它绑定(bind)到端口 2101。

最佳答案

替换 PHANTASIA_PORThtons(PHANTASIA_PORT) .

关于C:错误端口上的套接字绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4157855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com