Fortran Coder

标题: tcp服务器accept()的空指针参数 [打印本页]

作者: ricardo99    时间: 2021-12-20 17:25
标题: tcp服务器accept()的空指针参数
参考了站内的问答,试图用ivf写一个tcp/ip的服务器,在编写accept函数时遇到的问题如下:
说明文档中,accept函数的参数如下(c++):
    SOCKET WSAAPI accept(
  [in]      SOCKET   s,
  [out]     sockaddr *addr,
  [in, out] int      *addrlen
);
实际引用时,则是
    ClientSocket = accept(ListenSocket, NULL, NULL);

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

在下面列出的参考问答中,有bind函数的的调用:  
    文档(c++)  
int WSAAPI bind(
  [in] SOCKET         s,
  [in] const sockaddr *name,
  [in] 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
NULL 写 0 就行了
作者: ricardo99    时间: 2021-12-21 17:22
本帖最后由 ricardo99 于 2021-12-21 17:26 编辑
fcode 发表于 2021-12-20 18:17
NULL 写 0 就行了

成功了,谢谢。
虽然看到你回复的另一个帖子的回答,但是不知道直接输入0就行,没转过弯来。

fortran的空指针问题(调用C函数)-编程工具交流-专业Fortran论坛





欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2