Winsock的PeekData方法不清除列表怎么用GetData代替??
小弟用VB-Winsock控件的TCP连接编了一个远程控制的程序,其中用模拟按PrintScreen键实现了截屏操作,然后在对方计算机上存成图象文件,进而传送给控制端。开始用GetData方法,总是传不过来,后来用PeekData方法能够实现了,但是只是第一次可以,第二次就不行了,后来查了MSDN帮助,发现PeekData方法不清除缓冲列表。但是我用GetData方法加vbArray+vbByte参数还是不行,不知道为什么?程序如下:
'--------------------------Server---------------------------
keybd_event VK_SNAPSHOT, 1, 0, 0 '模拟按一次PrintScreen键
DoEvents
imgCapture.Picture = Clipboard.GetData(vbCFBitmap) '从剪贴板中得到位图SavePicture imgCapture.Picture, "c:\temp_server.bmp"'保存到文件
DoEvents
Dim Num_Bytes As Long '定义文件长度
Dim Bytes() As Byte '存储文件字节的动态数组
Open "c:\temp_server.bmp" For Binary As #1
Num_Bytes = LOF(1) '得到文件长度
ReDim Bytes(1 To Num_Bytes)
Get #1, , Bytes
Close (1)
DoEvents
sckServer.SendData Bytes
'-------------------------Client--------------------------------
Private Sub sckClient_DataArrival(ByVal bytesTotal As Long)
ReDim Bytes(1 To bytesTotal) As Byte
sckClient.PeekData Bytes
Open "c:\temp_client.bmp" For Binary As #2
Put #2, , Bytes
Close (2)