操作系统  办公  实用知识  设计  开发  WEB开发  移动开发  数据库  软件工程  网管  安全  管理  信息化  答疑  渠道 

用VB的WINSOCK控件发送大于8K的BMP

2006-9-20 网友评论 0 条 点击进入论坛

服务器端: 
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const theScreen = 1

Private Sub Form_Load()
tcpServer.LocalPort = 1001 '' 设置监听端口号
tcpServer.Listen '' 开始监听


End Sub

Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
If tcpServer.State <> sckClosed Then tcpServer.Close
tcpServer.Accept requestID

End Sub

Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
Dim a As String
tcpServer.GetData a


If a = "b" Then
Call keybd_event(vbKeySnapshot, theScreen, 0, 0)

Picture1.Picture = Clipboard.GetData(vbCFBitmap)
SavePicture Picture1.Image, "d:\ww.bmp"

 

Dim buf() As Byte
Dim position As Long
Open "d:\ww.bmp" For Binary As #1
position = 0
Do While Not EOF(1)
position = positon + 1
ReDim Preserve buf(1 To position)
Get #1, , buf(position)
Loop
Close #1

tcpServer.SendData buf

End If

End Sub

客户端:
Private Sub Command1_Click()


tcpClient.RemoteHost = txtip.Text
tcpClient.RemotePort = 1001
tcpClient.Connect '' 进行连接


End Sub

Private Sub Command2_Click()
Picture1.Picture = LoadPicture("d:\wr.bmp")
End Sub

Private Sub Command3_Click()

tcpClient.SendData "b"
End Sub

Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)


Dim receivefile(1 To 119862) As Byte
tcpClient.GetData receivefile, vbArray + vbByte

''告诉Winsock控件收到的是字节数组类型的数据
Open "d:\wr.bmp" For Binary As #1

Put #1, , receivefile

Close #1

End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)

End Sub

Private Sub Text1_Change()

已有 0 位对此文章感兴趣的网友发布了看法    
我来评两句 登录邮箱: 密码:
  匿名发表
今日推荐
技术文库(共有 46294 篇文章)
操作系统
办公软件
实用知识
网络管理
软件开发
WEB开发
软件工程
数据库
设计在线
信息安全
行业信息化
管理信息化
移动开发
重点推荐
电子杂志订阅
点击电子杂志名称查看样刊
输入E-mail地址即可订阅
E-mail