ricardo99 发表于 2021-12-20 17:25:52

tcp服务器accept()的空指针参数

参考了站内的问答,试图用ivf写一个tcp/ip的服务器,在编写accept函数时遇到的问题如下:
说明文档中,accept函数的参数如下(c++):
    SOCKET WSAAPI accept(
      SOCKET   s,
   sockaddr *addr,
int      *addrlen
);
实际引用时,则是
    ClientSocket = accept(ListenSocket, NULL, NULL);

但是在ivf中,c函数的参数中有NULL指针时,这个空指针应该如何定义出来。

在下面列出的参考问答中,有bind函数的的调用:
    文档(c++)
int WSAAPI bind(
SOCKET         s,
const sockaddr *name,
int            namelen
);


实际引用,
    status = bind(hSocket, %ref(BindInfo%sockaddr),&
      sizeof(BindInfo%sockaddr))


bind()的参数类型和accept()类似,但是bind的参数都是已经经过明确定义的,不同于单纯的空指针。虽然参照bind的参数去套accept的参数,但是没能成功。
另外需要指出,调用时没有使用iso_c_binding内置模块的,是因为上述的bind引用中,bind函数也是直接调用的。

请问有人有这类问题的解决方法或者建议吗?

附上参考的问答帖子:fortran语言实现socket通信/winsock-编程工具交流-专业Fortran论坛


fcode 发表于 2021-12-20 18:17:13

NULL 写 0 就行了

ricardo99 发表于 2021-12-21 17:22:57

本帖最后由 ricardo99 于 2021-12-21 17:26 编辑

fcode 发表于 2021-12-20 18:17
NULL 写 0 就行了
成功了,谢谢。
虽然看到你回复的另一个帖子的回答,但是不知道直接输入0就行,没转过弯来。

fortran的空指针问题(调用C函数)-编程工具交流-专业Fortran论坛
页: [1]
查看完整版本: tcp服务器accept()的空指针参数