Fortran Coder

查看: 12570|回复: 5

[绘图界面库] FORTRAN写TCP/IP协议

[复制链接]

5

帖子

3

主题

0

精华

入门

F 币
100 元
贡献
38 点
发表于 2021-3-31 14:45:00 | 显示全部楼层 |阅读模式
编程新手,请问fortran语言如何实现tcp/ip功能,应该怎么去做,可以支付报酬

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
发表于 2021-3-31 19:22:33 | 显示全部楼层
Fortran语法里没有这些内容,就像C语言,C++语言也没有这些内容一样。

我也不是很推荐用 Fortran 来完成这些事情。

如果你非要做,可以考虑封装一下操作系统的 socket 库。比如 windows 的 winsocket。

socket 的内容比较多。有 TCP,UDP 两种协议,还有客户端和服务器端。单播,组播等等。也不是三言两语可以说清楚。

很久以前,我封过一个简单的。需要 IVF 编译器才能正常编译使用。下面的范例,是做为 TCP 客户端的。其他的你看看代码,应该也容易写出来。

[Fortran] 纯文本查看 复制代码
Program Main
  Use ws2_32
  use SocketClass
  implicit none
  type(TCP_Socket) :: conn
  character(len=15) :: IP
  integer :: j
  IP = "127.0.0.1"
  j = Socket_Init()
  j = conn%Conn( SOCK_STREAM , IPPROTO_TCP , IP , 4488 )
  write(*,*) j
  j = conn%Send("Hello",5)  
  write(*,*) j
  j = conn%DisConn()
  call Socket_UnInit()
End Program Main

SocketClass.f90

7.74 KB, 下载次数: 12

4

帖子

0

主题

0

精华

入门

F 币
58 元
贡献
25 点
发表于 2021-4-6 06:54:21 | 显示全部楼层
看不懂,先膜拜一下

5

帖子

3

主题

0

精华

入门

F 币
100 元
贡献
38 点
 楼主| 发表于 2021-4-15 11:07:32 | 显示全部楼层
本帖最后由 Free 于 2021-5-8 21:19 编辑

...........
回复

使用道具 举报

1

帖子

0

主题

0

精华

新人

F 币
13 元
贡献
1 点
发表于 2023-4-12 16:26:18 | 显示全部楼层
vvt 发表于 2021-3-31 19:22
Fortran语法里没有这些内容,就像C语言,C++语言也没有这些内容一样。

我也不是很推荐用 Fortran 来完成这 ...

这是SocketClass里面的部分代码
    sockaddrin % sin_family = af_inet
    sockaddrin % sin_port = htons( port )
    sockaddrin % sin_addr % s_addr = inet_addr( host( 1 : len_trim(host) ) // c_null_char )
    iRes = Connect(this%hSocket, loc(sockaddrin), c_sizeof(sockaddrin))

这是之前您的代码:
    ConnectionInfo.sockaddrin.sin_family = af_inet
    ConnectionInfo.sockaddrin.sin_port = htons( port )
    ConnectionInfo.sockaddrin.sin_addr%s_addr = inet_addr( host( 1 : len_trim(host) ) )
    status = Connect(hSocket, %ref(ConnectionInfo%sockaddr), sizeof(ConnectionInfo%sockaddr))

对比一下,不难看出,在连接部分以前采用的是sockaddr,但是在SocketClass中采用的是sockaddrin,这里是否是笔误呢?

213

帖子

2

主题

0

精华

宗师

F 币
2126 元
贡献
875 点

规矩勋章

发表于 2023-4-13 21:26:16 | 显示全部楼层
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-19 07:44

Powered by Tencent X3.4

© 2013-2024 Tencent

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