VB6 使用WinSock控件来发送图片

如题,客户端和服务器端能够建立连接,我只需要使用WinSock控件发送图片的代码。
我是想使用服务器端发送服务器的全屏幕截图发送到客户端,实时更新。图片的格式是bmp,大小在3-4MB之间,无需对方确认,直接传送,并达到实时发送,也就是说发完后就发送新的。求各位大神贴代码!!
顺便问一下:如果本程序在局域网内的两台不同电脑上运行的话,延迟大概会有多少?
满意的话加钱!!!

第1个回答  2015-07-20
压缩传送,比如转换为jpg格式,会小很多,否则局域网 3-4M大小也会看到一些延迟,再局域网你不可能100M每秒吧。。。发图片和发数据没区别,都是 Send(Buff,len,0);这样的方式。。。。。贴代码就算了,WinSock很简单的,无非就是发送,接受,用UDP,连接都省了。。。你只用隔一段时间发送一次即可,比如50ms,至于对方,接到没接到你可以完全不管,他只用接受后显示即可,但最好带上时间戳,来区分先后,只显示最晚的一个(局域网无所谓)。。。。 BMP最不划算的图片格式,特别向电脑这种颜色单调的图片,用jpg可以小很多倍,而且失真少。。。追问

请问是把图片作为二进制数据传送吗?

追答

图片就是二进制数据,在电脑里,所有东西都是二进制数据。。。

追问

那么请问您是否能给出一个用二进制发送图片的例子?要代码。

我自己解决了,谢谢!

本回答被提问者和网友采纳

关于VB6.0使用WINSOCK控件通过TCP连接向仪器实时发送命令
Winsock1.SendData "UD1,TREND,i" & vbCrLf 要改为 Winsock1.SendData "UD1,TREND," & i & vbCrLf

vb6.0 winsock 控件数组发送数据只有最后一个能发出去
在每一个 SendData 方法的下一条语句处加上 DoEvents 因为控件在发送数据时 程序执行权限不在发送上 导致后一条发送数据被覆盖或未执行 在发送数据方法的下一条语句加 DoEvents 关键字为了转交执行权限 使得数据发送完成后返回调用者继续执行 即 WinsockList(j).SendData "msg你是" & j & "号机 ...

在VB6.0中如何使用socket控件?
第二,通过判断WinSock控件的State属性是否为0(关闭状态),来重新使用已关闭的WinSock控件。第三,通过给WinSock控件传递的信息加上包头,来对信息进行不同的处理(程序中若信息前加上了“PT"(Private Talk)+"通道数”的包头,由此就知道客户想要同拥有此“通道数”的另一客户进行“悄悄话”,否则就以广播方式将信息发给...

关于vb6的winsock控件一次性传递数据大小的问题。
第一,应用程序可能会受到其程序接口的限制。socket API提供了一个可供应用程序调用的函数,以设置接收和发送缓存的长度。对于UDP socket,这个长度与应用程序可以读写的最大UDP数据报的长度直接相关。现在的大部分系统都默认提供了可读写大于8192字节的UDP数据报(使用这个默认值是因为8192是NFS读写用户数据...

vb6winsock如何判断二进制文件是否发送完成
1、使用VB6中的FileLen函数或FileSystemObject对象获取待发送文件的大小。2、将待发送文件分成若干个数据包,每个数据包不超过Winsock控件的发送缓冲区大小。通过循环发送数据包,直到所有数据包发送完毕。3、在发送数据包时,可以监听Winsock控件的DataArrival事件和SendComplete事件,以判断是否有数据包已经发送...

使用VB6.0软件winsock控件向服务器传输文件出现内存溢出,求解!_百度知...
2、ReDim数组时占用大量内存空间也可以出现这样的问题 (解决办法,redim重定义数组时不要把范围定的太大)3、一个无限死循环 读txt死循环 (解决办法,你别自己没事写死循环就好了^-^)4、使用了API函数 并且监视自己窗口的消息。(解决办法,在unload时把监视消息交还给windows处理,另外VB对API的兼容...

vb6.0用winsock控件不能链接局域网内的计算机。跪求大神指导。。。_百...
As Long)’当有客户连接的时候出发事件 Winsock1.Close ‘关闭控件,应为服务器控件拿来侦听端口所以要先关闭 Winsock1.Accept requestID ‘绑定客户端信息,之后就可以和客户端发送数据了,但是绑定之后就不能再用来侦听端口了,你可以创建一个控件数组,winsock1就转们用来侦听端口就可以不用关闭 End Su...

主机用vb6.0的WINSOCK控件与另一台PC机以太网连接?
可以,1. 简单:两个winsock,用不同的端口号, 比如 端口5000 和触摸屏机联, 端口5010和另一台PC机连接,2. 麻烦点,一个winsock,起始index为0, 相同端口, 程序略麻烦点, 同一个接听端口听到一个连接请求,处理一个,再来一个,再处理一个,端口同但连接的index不同, 是不同的连接。

VB6 Winsock几个简单的问题
其实问题你可以换一个思路去思考,1,你可以用多个Winsock控件解决 2,第二个你可以用类似于tcp协议的方法控制速度,这样服务器发送一条客户端接收完和回复一下,然后服务器再发送一条...,如果你感觉慢可以多路同时按这个思路进行 详细问题那只能把你的具体代码亮出来了 ...

VB6.0的winsock控件用UDP局域网广播数据,当数据很大时接收方报10040...
虽然很久没用这控件了,不过原理还是懂的,给你点思路吧 解决你的问题,大概有几个方法:一.控制发送速度,简单但是效率有点低 二.技术方加大数据缓冲,优先接收,读了就放内存里,接收完或是空闲时再处理,这在处理过程复杂时比较有效 三.出错的数据丢掉---没错,就是不要了!既然你选择了UDP,就无法避免...

相似回答