我的目的如下:
1)几台机子开启应用程序
2)设置一台为服务器,其他的为客户机。通过程序,服务器可以将自己当前的界面在客户机上显示。并能看到他的一举一动! 有的提议此程序用屏幕广播来实现!由于以前没有做过!所以我不清楚!请问各位:这种方式好实现吗?如何实现!!
1)几台机子开启应用程序
2)设置一台为服务器,其他的为客户机。通过程序,服务器可以将自己当前的界面在客户机上显示。并能看到他的一举一动! 有的提议此程序用屏幕广播来实现!由于以前没有做过!所以我不清楚!请问各位:这种方式好实现吗?如何实现!!
用SOCKET就行了.
每隔一段时间发送当前屏幕内容就行了
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;