关于 Winsock 的一个问题?请大侠们帮帮小生

MHB 2001-12-14 08:03:13
在VB编写网络通信程序是,怎么实现发送一个结构?例程如下:

Type MyPackage
pID as String *3
pType as Integer
pSize as Long
pBuff as String
End Type

如果通过 Winsock1.SendData 来发送这个结构?


Winsock1.SendData pID
Winsock1.SendData pType
Winsock1.SendData pSize
Winsock1.SendData pBuff
这种方法在本帖中除外。

还有,如何接收这个结构?


Winsock1.GetData pID
Winsock1.GetData pType
Winsock1.GetData pSize
Winsock1.GetData pBuff
这种方法在本帖中除外。
...全文
101 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlk 2001-12-17
  • 打赏
  • 举报
回复
Type MyPackage
pID as String *3
pType as Integer
pSize as Long
pBuff as String
End Type
每个字段中间用分隔符分开如用chr(0)
dim a as mypackage
dim str as string
str =a.pID &chr(0) & a.pType & chr(0) & a.pSize & chr(0) & a.pBuff
wsk.senddata str
接收时,以分隔符为标志,拆分就可以了。
vb没法发结构
MHB 2001-12-17
  • 打赏
  • 举报
回复
To: cherno(且歌且狂) 

Winsock 不支持用户定义类型,你这种方式是行不通的。

希望你们认真回复,我在此万分感激。!
MHB 2001-12-17
  • 打赏
  • 举报
回复
to: wlk(温水)

很谢谢你的回答,你这样做也是有问题的,包的大小不能确定,而且跟VC++做的通信程序很难结合,这样做只是将数据类型统一为字符串类型。
可能这就是VB中 Winsock 的一个缺陷吧!很不方便,要是支持用户类型发送与接收该多好啊。

我现在采用的是用VC++写DLL,实现数据内存块与VB中的用户自定义结构类型转换,这样做算是满足了我这个通信项目的功能,但总体来说也很不方便、有局限性。唉!真的没VC++方便,真心希望将来的VB能跟VC++媲美。

希望有好的方法大家一起来探讨。

cherno 2001-12-16
  • 打赏
  • 举报
回复
dim a as MyPackage
a.pId=...
a.pType=...
a.pSize=...
a.pBuff=...

winsock1.senddata a

winsock1.getdata a
你用16进制一个个打开看是什么东西~~分析一下~~哈哈
MHB 2001-12-16
  • 打赏
  • 举报
回复
有人帮我吗?(help me)
发帖
VB基础类

7681

社区成员

VB 基础类
社区管理员
  • VB基础类社区
加入社区
帖子事件
创建了帖子
2001-12-14 08:03
社区公告
暂无公告