| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1295 人关注过本帖
标题:关于vb的winsock通信
只看楼主 加入收藏
chenjiang001
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2006-3-21
收藏
 问题点数:0 回复次数:8 
关于vb的winsock通信

  关于vb的winsock通信

   我想问一下在通过winsock控件从服务器端向客户端发送图片时用什么方法发送呢?
Private Sub cmdSend_Click()
'向服务器发送文件
Dim myFile() As Byte
Dim lngFile As Long '文件长度
Dim FileName As String '文件名称
Static i As Single
If sockClient.State = sckConnected   Then

FileName = VB.App.Path & "\1.jpg" '取得文件名及路径
lngFile = FileLen(FileName) '取得文件长度
ReDim myFile(lngFile - 1) As Byte '初始化数组

Open FileName For Binary As #1 '打开文件
Get #1, , myFile '将文件写入数组
Close #1 '关闭文件

sockClient.SendData myFile '发送

End Sub
这是我的毕业设计,基于web 的 gis,服务器端不能向客户端发送图片
 我用的这个方法只能发很小的图片,太大的话出错提示文件太大
不知道用什么方法才能实现发送接收?
请指点

搜索更多相关主题的帖子: winsock通信 服务器 Dim FileName 文件 
2007-04-03 20:25
chenjiang001
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2006-3-21
收藏
得分:0 
Private Sub wskb_DataArrival(ByVal bytesTotal As Long)
Static i As Long
Dim myFile() As Byte
Dim myLong As Double
Dim myPath As String
myPath = VB.App.Path & "\map.jpg"
cmdC.Caption = "正在接收数据... " & bytesTotal
ReDim myFile(0 To bytesTotal - 1) '此处也可以是(0 To bytesTotal-1)

wskb.GetData myFile
i = i + 1

Open myPath For Binary As #1 '新建文件
Put #1, lenth + 1, myFile '将收到的数据写入新文件中
Close #1 '关闭'记录文件长度
lenth = lenth + UBound(myFile) - LBound(myFile) + 1
Picture2.Picture = LoadPicture(VB.App.Path & "\map.jpg")
end sub
这个是接受端的代码,就是不能接受一般大的图片,只能接受很小的图片./

2007-04-03 20:29
学习VB才2天
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1653
专家分:0
注 册:2006-5-4
收藏
得分:0 
WINSOCK一次只能发送小于8K Bit的数据 如果数据量大的话,尝试多次发送吧``

[GLOW=255,DeepPink,3]我的免费网盘[/GLOW]
2007-04-03 20:34
chenjiang001
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2006-3-21
收藏
得分:0 
thank you

2007-04-03 21:41
chenjiang001
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2006-3-21
收藏
得分:0 

请问这个多次发送怎么实现呀?
定义一个缓冲区从文件中取数据
可是当第二次取文件时,从哪儿开始呢?
想了一晚上都没想出来,
有代码的可以看以下吗?

谢谢


2007-04-04 10:30
清澂居士
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:1237
专家分:7
注 册:2006-12-19
收藏
得分:0 
LEN(string)
if >8K

佛曰:\"前世的500次回眸才换来今生的一次擦肩而过\".我宁愿用来世的一次擦肩而过来换得今生的500次回眸.
2007-04-04 10:36
chenjiang001
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2006-3-21
收藏
得分:0 
定义从一个缓冲区从文件中取数据
可是当第二次把缓冲区中的文件写入目标文件时,
从哪个位置?开始呢?
会不会覆盖第一次写入文件中的数据?
可以给出具体一点的算法吗?


thanks

2007-04-04 11:16
清澂居士
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:1237
专家分:7
注 册:2006-12-19
收藏
得分:0 

用重定义数组的方法`


佛曰:\"前世的500次回眸才换来今生的一次擦肩而过\".我宁愿用来世的一次擦肩而过来换得今生的500次回眸.
2007-04-04 11:17
chenjiang001
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2006-3-21
收藏
得分:0 

是不是每发送一次都要调用一 次wsk_senddata事件?
还是在这个事件里设置循环重复发送?
是不是在发送事件的外部求文件长度,然后设置循环调用wsk_senddata事件?


2007-04-04 11:44
快速回复:关于vb的winsock通信
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016430 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved