Fortran Coder

查看: 95|回复: 2

[混编] tcp服务器accept()的空指针参数

[复制链接]

2

帖子

1

主题

0

精华

新人

F 币
15 元
贡献
6 点
发表于 2021-12-20 17:25:52 | 显示全部楼层 |阅读模式
参考了站内的问答,试图用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论坛


回复

使用道具 举报

1699

帖子

13

主题

5

精华

论坛跑堂

臭石头雪球

F 币
2330 元
贡献
1457 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2021-12-20 18:17:13 | 显示全部楼层
NULL 写 0 就行了

2

帖子

1

主题

0

精华

新人

F 币
15 元
贡献
6 点
 楼主| 发表于 2021-12-21 17:22:57 | 显示全部楼层
本帖最后由 ricardo99 于 2021-12-21 17:26 编辑

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

fortran的空指针问题(调用C函数)-编程工具交流-专业Fortran论坛
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2022-1-19 16:49

Powered by Tencent X3.4

© 2013-2022 Tencent

快速回复 返回顶部 返回列表