效果有点像飞鸽传书那样,
网内主机A给B发送一个消息后,消息显示在B主机的桌面最前面,B主机点击消息后表示收到,此时主机A会收到一个反馈信息,表示主机B已经接收到消息了。
主机A和B的通信信息可以记录到服务器C的数据库中,以备查询历史纪录。

解决方案 »

  1.   

    这就是传说中的TCP/IP协议了
    去学习一下网络通讯方面的基础知识再来吧
      

  2.   

    TCP/IP协议早就学得烂熟了,我现在要的是实践.
    sdzeng(大头鸟):你把TCP/IP协议学会了你就会编程了?开玩笑吧.
      

  3.   

    procedure TForm1.ListBox1DblClick(Sender: TObject);
    var
    tt:TMemoryStream;
    op:tjpegimage;
    begin
    statusbar1.Panels.Items[2].Text:='getting the desktop of '+listbox1.Items.Strings[listbox1.ItemIndex];
     idtcpclient1.Disconnect;
    idtcpclient1.Host:=listbox1.Items.Strings[listbox1.ItemIndex];
    idtcpclient1.Port:=1188;
    try
    tt:=tmemorystream.Create;
    idtcpclient1.Connect(500);
    idtcpclient1.WriteLn('getdesktop');
    op:=tjpegimage.Create;
    idtcpclient1.ReadStream(tt,-1,true);
            tt.Position:=0;
    //tempjpeg:=TJPEGImage.Create;
    op.LoadFromStream(tt);Image1.Picture.Bitmap.Assign(op);//image1.Picture.Bitmap.LoadFromStream(tt);
    except
    statusbar1.Panels.Items[2].Text:='sorry,can not to connect '+listbox1.Items.Strings[listbox1.ItemIndex]+' mybe it is power off';
    end;
    end;用idtcpclient1作客户端用idtcpserver作服务端用writeln发文本
      

  4.   

    楼上正解!
    客户端 IdAntiFreeze1和idtcpclient1
    服务端放IdTCPServer1
    服务端 IdTCPServer1.writeln
    客户端  idtcpclient1.readln
    反过来客户端向服务端发送一样的
      

  5.   

    点对点,可以用UDP
    使用indy9中的udp组件
      

  6.   

    这得分清 你的 另一台主机 的不同情况
    1 如果同一个内网里 事情就简单的多了,直接用IDNY中的UDP server来做就可以了
    2 如果你的另一个主机在公网上,也可以用UDP server来做
    3 如果在不同的NAT后面,那问题就麻烦些了,需要一些技术,如UDP HOLE技术,Nat穿透等概念 你自己查下 我现在也没弄出来呢!
      

  7.   

    打开飞鸽发送局域网广播包,公布自己的ip地址,这样其它计算机就可以通过接收到的这个IP地址与这太机器进行聊天等操作,当消息接收端打开后发一个回执包,文件传输采用tcp/ip协议那就更简单了,个人认为飞鸽是im即时通软件中最简单的一种
      

  8.   

    用TcpClient,TcpServier控件可以实现,原理跟聊天室差不多
      

  9.   

    TCP的话 能穿透NAT吗?楼上们!