Fortran Coder

查看: 14289|回复: 14
打印 上一主题 下一主题

[绘图界面库] fortran语言实现socket通信/winsock

[复制链接]

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

楼主
发表于 2015-8-10 15:33:50 | 显示全部楼层
你定义的 character*(500) bufferout 就是字符串啊,所以当然就是字符串了。
fortran 直接操作字符串会在后面自动加空格。

我的习惯是用 Equivalence 方便处理:
[Fortran] 纯文本查看 复制代码
Type T_DAQ
    SEQUENCE
    character(len=3) :: cFlagStart !// 一般会有帧头,但不是必须的
    !// 此处是你的各数据,用 type 会更方便多种不同数据放在一起
    character(len=3) :: cFlagEnd !// 一般会有帧尾,但不是必须的
  End Type T_DAQ

type(T_DAQ) , private :: stDAQ !// 这是你真正的数据
character(len=80) , private :: C_DAQ !// 这是为了方便书写
Equivalence( C_DAQ , stDAQ ) !// 让 C_DAQ 和 stDAQ 公用一个内存地址!这样,当你传输时,使用 C_DAQ,而使用时,使用 stDAQ


712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2015-8-11 12:58:38 | 显示全部楼层
我觉得最好不要用字符串发送。都是数据,用二进制多好。
干嘛要转换成字符串,然后接收以后再转换回来呢?多此一举不是。

对于后面有二进制的数据,你可以直接用 fortran read 。
也可以控制 matlab,发送完字符串以后,接着发送一系列的 \0 或空格。都可以
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-8 06:35

Powered by Tencent X3.4

© 2013-2024 Tencent

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