winsock控件,client段传递文件,server接收.怎样才能使server自动得到client传递的文件名称呢???想过几个办法~``不可行~`看了一个完整的例子,找不到具体哪儿是取得文件名的代码.如果benyfeifei(狒狒) 看到,请告诉我下,那个例子中,server端怎样得到client的文件名称???谢谢大家
解决方案 »
- 如何使使用richtextbox控件的文档不需要重新引用控件?
- 为什么有的硬盘用“disk32.dll获得硬盘序列号”的方法获得不到?
- 2000下程序里设置打印纸张大小为何不起作用?
- VB+SQL7.0怎样把查询到的记录集导成EXCLE!!!
- eBay API (eBaySync 2.0) 交易数据本地自动同步软件 支持自定数据库及多帐号
- vb怎么驱动打印机进行打印?
- 求求大爷们了,我想更改一个VB窗口的类,不知道该怎么办?
- 请教:如何用VB编程实现将EXCEL中的数据导入ACCESS数据库
- 怎样抓取REALPLAYER播放器中的图片????
- Access的问题,急!!!在表里输入数据时......
- sql数据库表导出到excel 代码提示错误??????大家帮帮看看问题在哪???加急?? 一夜没睡觉
- 【问】如何用API取得TreeView控件中XY位置的Node左上角和它的宽高?
总不能每个拆过得包,都放这样得字节吧?那样性能会多少造成一点影响得.还是其他什么方式么?请指教
你完全可以自定义一个如下类型的TypeType FilePacket FileName As String*255 '文件名称
FileSize As Long '文件大小
PacketNumeber As Integer '数据包序号
PacketData() As Byte '包数据,注意由于Socket的限制,数组大小建议为4000
PacketSize As Integer 'PacketData()的大小
End Type然后用Socket把这个结构体发送出去就行。
----------------------------------------------------------
4000有点过大,总之整个FilePacket的大小不要超过4096就行。
我就是在考虑,在发送文件名,文件大小后,然后再发送文件数据,服务器段会不会执行错误的命令?也许会把另外一个客户端的文件内容写到别的文件里边.
另外还有一个问题,如果将客户端的数据写成类型(type),那么客户端应该怎样拆呢??????
我就是在考虑,在发送文件名,文件大小后,然后再发送文件数据,服务器段会不会执行错误的命令?也许会把另外一个客户端的文件内容写到别的文件里边.
--------------------------------------------------------
不管你采用这样的文件传输机制,服务器端在接收文件时,你必须要有一个机制确保文件存储的唯一性。你可以采取FlashGet的那种方式,当需要接收一个文件并获得文件名称和大小后,先在本地建立一个大小相同但数据为空的文件,如果遇到重名的情况,就对文件进行相应的更改。这样确保每一个客户端连接都与唯一的一个文件相对应。另外还有一个问题,如果将客户端的数据写成类型(type),那么客户端应该怎样拆呢??????
-----------------------------------------------
你看看这个例子吧:
VB6.0实现发送结构体:发送端程序public Type MyType
lngTest as long
intTest as integer
end typePrivate Sub Command1_Click()
dim t as MyType Dim var() As Byte
t.intTest = 0
t.lngTest = 10000
ReDim var(0 To Len(t) - 1) As Byte
CopyMemory ByVal VarPtr(var(0)), ByVal VarPtr(t), Len(t)
Winsock2.SendData var
End Sub接收端程序Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim var As Variant
Dim t As MyType
Dim tt() As Byte
ReDim tt(0 To bytesTotal - 1) As Byte
Winsock1.GetData var
tt = var
CopyMemory ByVal VarPtr(t), ByVal VarPtr(tt(0)), bytesTotal
debug.print t.lngTest
End Sub然后对两个Winscok控件设置BPOSThttp://community.csdn.net/Expert/rep粤?
我的是用UDP协议测的,TCP没试