gpt4 book ai didi

c - 如何编辑 sctp.h 以添加 SO_REUSEADDR

转载 作者:行者123 更新时间:2023-11-30 16:09:27 32 4
gpt4 key购买 nike

我正在运行两个 SCTP RPM 包。lksctp-工具-1.0.11lksctp-tools-devel-1.0.11

我的 sctp 头文件位于/usr/include/netinet/sctp.h 中,它具有绑定(bind)方法,但没有监听方法。

int sctp_bindx(int sd, struct sockaddr *addrs, int addrcnt, int flags);

int sctp_connectx(int sd, struct sockaddr *addrs, int addrcnt,
sctp_assoc_t *id);

int sctp_peeloff(int sd, sctp_assoc_t assoc_id);

/* Prototype for the library function sctp_opt_info defined in
* API 7. Socket Options.
*/
int sctp_opt_info(int sd, sctp_assoc_t id, int opt, void *arg, socklen_t *size);

我想在此代码中使用 SO_REUSEADDR 来解决内核 2.6.32 的 SCTP 中的“地址已在使用中”错误。

我了解到下面的代码片段可以帮助添加 SO_REUSEADDR 但我不知道在代码中的位置/如何添加:

int on = 1;
...
setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &on, sizeof on);
bind(s, (struct sockaddr *) &sin, sizeof sin);

我没有接受过套接字编程方面的教育,但我正在解决这个问题,因为在端口 3868 上,客户端请求是由远程 java 进程发出的,该请求会抛出“地址已在使用中”错误,因为其他一些 TCP 进程将使用相同的端口

最佳答案

I learnt that below snippet can help in adding SO_REUSEADDR but I dont know where/how to add in the code

您需要添加两行:

int on = 1;
setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &on, sizeof on);

在使用 socket 调用创建套接字之后、bind 之前。

关于c - 如何编辑 sctp.h 以添加 SO_REUSEADDR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59140922/

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