自动生成定义全局变量问题!

userlike9091 2005-04-03 02:03:09
是一个winscok文件传输问题,因为传输大文件就要分包传输,所以接收端就有几个全局变量,如果有多个发送端同时向接收端传输文件,接收端就得重复调用几个全局变量,使得全局变量的值变得混乱.

Dim sum As Long
Dim t As Boolean
Dim lot As String
Dim k As Long

例如:第一个连接服务端的就为:1
自动生成定义全局变量:
dim sum1 as long
dim t1 as boolean
dim lot1 as string
dim k1 as long
sum1=1
t1=False

第二个连接服务端的就为:2
自动生成定义全局变量:
dim sum2 as long
dim t2 as boolean
dim lot2 as string
dim k2 as long
sum1=1
t2=False
请大家解答!
...全文
164 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
userlike9091 2005-04-03
  • 打赏
  • 举报
回复
看不懂,能否对它进行注释吗?因为我没有接触过这方面的内容
Hassle 2005-04-03
  • 打赏
  • 举报
回复
TO:zyg0(影子(如影随行)

用几个全局的动态数组,实时释放会不会比较麻烦呢?
zyg0 2005-04-03
  • 打赏
  • 举报
回复
用几个全局的动态数组不行吗
Hassle 2005-04-03
  • 打赏
  • 举报
回复
再罗嗦两句:

我上面说的只是一个思路,你自己变化一下应该不难的,我认为关键是理解思路

另外我建议你把socket控件及自定义方法、变量等等统统用一个类封装起来,可能更简单
Hassle 2005-04-03
  • 打赏
  • 举报
回复
Class1.cls:

Public s As String
Public l As Long

Form1.frm:

Option Explicit

Public Col As Collection

Private Sub Command1_Click()
MsgBox Col.Item("x1").s
End Sub

Private Sub Form_Load()
Set Col = New Collection
Dim c As Class1
Set c = New Class1
c.s = "ok"
Col.Add c, "x1"
End Sub
Hassle 2005-04-03
  • 打赏
  • 举报
回复
Collection对象AddItem
Hassle 2005-04-03
  • 打赏
  • 举报
回复
Class1.cls:

Public s As String
Public l As Long

'把需要的几个全局变量封装成一个类
'相当于 VisionSpace(幻影时空)的那个Type

Form1.frm:

Option Explicit

Public Col As Collection
'Collection 对象是项目所组成的有序集合,可以把这个集合作为单元来引用(参见MSDN)

Private Sub Command1_Click()
MsgBox Col.Item("x1").s
End Sub

Private Sub Form_Load()
Set Col = New Collection
’这个不用解释了吧

Dim c As Class1
Set c = New Class1

c.s = "ok"
’赋值

Col.Add c, "x1"
'向Collection添加一个item,可以是命名的(x1是名称),也可以是非命名的
End Sub

因为Collection可以动态增加、删除Item,写代码比较容易
  • 打赏
  • 举报
回复
啊?呵呵,我说呢*^_^*

偶很少用socket控件啦,不过那个collection的思想很简单的,这个如同ASP的dictionary一样,很好用的
幻影时空 2005-04-03
  • 打赏
  • 举报
回复
Private Type SendFileType
FileName As String '文件名
MaxSize As Long '文件最大在小
SendSize As Long '已发送的大小
IsSend As Boolean '是否发送
End Type
Private Sub Command1_Click()
Cls
Dim SFile(10) As SendFileType
For i = 0 To 10
SFile(i).FileName = "文件名" & i
SFile(i).IsSend = True
SFile(i).MaxSize = 1000 + i
SFile(i).SendSize = 60 + i
Next
For i = 0 To 10
Print "File("; i; ")="; SFile(i).FileName; ",IsSend="; SFile(i).IsSend; ",MaxSize"; SFile(i).MaxSize; "SendSize"; SFile(i).SendSize
Next
End Sub
---------------------------
这个简单使用数组的例子.
wzzwwz 2005-04-03
  • 打赏
  • 举报
回复
不懂ing,帮顶

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧