服务端:ServerSocket
OnRead事件中:
var
s : String;
s := socket.ReceiveText
if s = 'getScreenSize' then
begin
截获屏幕,并将其保存到TMemroyStream可以用bmp.loadtostream(TMemoryStream);
Socket.sendText(inttostr(TMemoryStream.size));
end
else if s = 'sendIt' then
begin
可以先将TMemoryStream压缩然后再发送,这样速度会快很多.
Socket.sendStream(TMemoryStream);
end;
客户端:ClientSocket
var
mySize : Integer;//全局变量
OnConnect事件中:
socket.sendText('getScreenSize');
OnRead事件中:
begin
if mySize = 0 then
begin
mySize := strtoint(Socket.ReceiveText);
socket.sendText('sendIt');
end
else
begin
接收数据
如果接收到的数据总数>=mySize then
解压缩数据
显示图像
mySize := 0;
socket.sendText('getScreenSize');
end;
end;