winsock图片发送问题
现在用vb编写一个程序,想通过winsock将picturebox中已有的图片通过winsock发送到另一个程序界面中,程序是Private Sub Command1_Click()‘发送
Dim pbag As New PropertyBag
Dim pictureByt() As Byte
pbag.WriteProperty "Picture", Picture21.Picture
pictureByt = pbag.Contents '获得容器byte到pictureByt()中
Winsockserver.SendData pictureByt
end sub
现在有个问题就是winsock每次发送的字节大小好像有限制只有8k,而我的图片至少400k,只能分块发送,现在想着是能把数组中的内容安1k的大小分块,有没有什么函数可以直接将数组分块的,我现在想到的就是利用for循环一点点取出,但感觉很麻烦,大家有没有比较好的办法,我菜鸟一个,想听听专家们得意见呵呵,谢谢啦 只有8K,谁告诉你的啊,哈哈.
http://blog.m5home.com/default.asp?id=169
这里有个代码,注意看客户端的实现. 马大哈 发表于 2011-6-28 13:07 static/image/common/back.gif
只有8K,谁告诉你的啊,哈哈.
http://blog.m5home.com/default.asp?id=169
谢谢斑竹回复,但我做实验了传送小于8k的就能传送成功,接收端也能接收并显示(当然大的也显示发送成功成功,但在接收时就无法显示)8k也是网上查的嘿嘿http://topic.csdn.net/t/20031201/11/2513451.html,其实自己也不很明白 子岩 发表于 2011-6-28 15:00 static/image/common/back.gif
谢谢斑竹回复,但我做实验了传送小于8k的就能传送成功,接收端也能接收并显示(当然大的也显示发送成功成 ...
那里所谓的几K,是指一次传输中封包的大小,就像运东西时你车的大小,与运多少东西无关.
车大,一次就能运完,车小,要分N次才能运完.
因此在需要分的情况下要有个机制管理整个过程.
但这个过程WINSOCK是已经做了管理的,直接用就行了. 马大哈 发表于 2011-6-30 16:09 static/image/common/back.gif
那里所谓的几K,是指一次传输中封包的大小,就像运东西时你车的大小,与运多少东西无关.
车大,一次就能运 ...
谢谢老马的帮助,你说的没错,但现在还有个问题请教一下,我修改了一下程序用数组可以接受到发送的图片数据,但接收完成之后,想要picturebox控件将其显示出来,我采用的是将字节数组赋值给propertyBag对象,然后再通过propertyBag读出相应的数据,这个我在同一个窗口已经试过是没问题的,但通过winsock发送的数据(就是几次接收完成之后)却不能存放到propertyBag中,想了解一下原因,自己是第一次编这样的程序,有些地方还是很糊涂,希望能解答一二。程序是这样的
Private Sub Winsockserver_DataArrival(Index As Integer,ByVal bytestTotal As Long)
Dim pbag As New PropertyBag'得到图片信息
Dim bytImage() As Byte' 保存图片信息
Dim pictureByt() As Byte '接收图像信息
Dim j,k as Long
Static i as Long
Winsockserver(Index) .GetData pictureByt,vbByte
j=UBound(pictureByte)
if i>0 Then
ReDim Preserve bytImage(i+j+1)
For k=0 To i
bytImage(k)=byteImage(k)
Next
For k=i To i+j
bytImage(k+1)=pictureByt(k-i)
Next
i=UBound(bytImage)
if i=307311 Then '307311是我测试的图片的字节
pbag.contents=bytImage ‘发送数据完成后此处就会显示无效的过程调用或参数Set Picture1.picture=pbag.ReadProperty("picture")
End if
else
bytImage=pictureByt
i=UBound(bytImage)
End if
End Sub
没人回答吗,我这样接收有问题吗?winsock是按吧b-b这样顺序分包发送吧,还是propertybag使用有错误,高手们说句话:'( 你可以看看2楼的代码,里面好象是保存到文件.
如果不想保存到文件,那可以试试这个代码:
【原创】马大哈系列功能模块----根据字节数组直接得到IPicture对象
http://www.m5home.com/bbs/thread-2688-1-1.html 这几天挺忙,刚从东莞回来,马上又要去大连了....... 马大哈 发表于 2011-7-14 16:48 static/image/common/back.gif
这几天挺忙,刚从东莞回来,马上又要去大连了.......
那真是太感谢老马了,辛苦啦{:1_182:} 学习了.
页:
[1]