刚刚学会用Winsock做简单的聊天程序,但只能在两台机器上实现,怎样实现多台机的数据传送?
以及如何用Winsock传图片?
多台机发送信息需要通过一个信息中转站,也就是服务器,它负责将信息类似广播地发送到其他主机上。
发送图片的过程:
1、打开图片文件流;
2、一边读取文件流,一边发送图片数据,例如:
Dim byteBuffer() As Byte
Open "C:\a.jpg" For Binary As #1
Do While Not EOF(1)
DoEvents
Get #1, , byteBuffer
WinSock1.SendData byteBuffer, vbByte + vbArray '第二个参数表示发送的数据是一个字节数组,如果不填,接收方会打不开图片文件
Loop
Close #1
3、接收方打开输入文件流,并接收图片数据。代码为:
Dim byteBuffer() As Byte
Open "C:\a.jpg" For Binary As #1
WinSock1.GetData byteBuffer, vbByte + vbArray
Put #1, , byteBuffer
Close #1
注意: 文字和图片的发送与接收,SendData 和 GetData 方法的第二个参数是不一样的。