本帖最后由 kitty1kitty 于 2010-12-02 23:00:31 编辑

解决方案 »

  1.   

    你确定连接没问题吗 udp本身可靠性就差啊
      

  2.   

    连接上了,我后来增加一个按钮只发字符的就可
    str:='aaaaa';
    IdUDPClient1.Send(str);证明连接是没有问题
      

  3.   

    UDP 数据报的大小是有限制的,
    你截屏后,
    虽然使用 JPEG 以最低质量压缩了,
    但你确保待发送数据量的大小,没有超过 UDP 数据报的限制吗?
    delphi 本身的 TNMUDP 一次只能发送 2K 的数量。
    我也正在做这样的项目,
    我的方法是,
    将每张JPEG分成很多帧,
    然后使用UDP一帧一帧的发到接收端,
    接收端把收到的帧组合起来,回显。但我的这个方法也有一些问题,UPD 要掉包。
    我正准备在论子里发个帖子求助。
      

  4.   

    picM.CopyFrom(AData,AData.Size);
    似乎不能这么写吧
    picM.CopyFrom(AData,SizeOf(AData));
      

  5.   

    你说的网上是什么?
    估计是局域网对另外的局域网
    你的IP 你的路由NAT 
    其他的IP 其他的路由NAT
    需要穿透NAT,
    要不找个有个独立IP(公网)的机器
    要不用中转服务器来做中转  
      

  6.   

    楼主,我想问问,
    你的 IdUDPClient1 是 delphi 的 TNMUDP 控件吗?
    还是第三方控件?Declaration
    procedure SendBuffer(Buff: array of char; length: integer);delphi 的 TNMUDP.SendBuffer() 函数的第一个参数不能接收指针,你的代码应该在编译时报错,
    我想你用的是第三方UDP控件吧?
      

  7.   

    明白了,
    你的 IdUDPClient1 是 delphi7 中的 TIdUDPClient 控件,
    它的 SendBuffer() 函数是重载了的。Sends a buffer containing data to the remote system.
    procedure SendBuffer(var ABuffer; const AByteCount: integer); overload;
      

  8.   

    在我家的两台电脑用一个路由联接,分别在两台机做接和收,运行,接收端没变化,不能得到要的结果
    我拿到一个机房,(20台机的局域网上)分别用其中的两台试接和收,运行,接收端能正常接收。
    但今天我又拿到另外一个机房(也是20台机的局域网上)分别用其中的两台试接和收,运行,这回又不行了,接收端能表能正常接收。为什么在有些地方行,有些地方不行,后来我怀疑是不是与杀毒软件有关,比较了一下,大家都一样装有360,在不行的网里试着关接杀毒软件,还是不行
    To:jrmd
    你说的重载是要在代码后加一个overload就行了吗?
      

  9.   

    不知道你家里的局域网怎么搭的
    运行的代码的时候,你两个电脑有没固定局域网IP
    可以用抓包工具看下UDP包发送情况, 主要是IP 和 端口
    机房就不好说,有些机房会拦截一些UDP包的 
      

  10.   

    既然跟网络环境有关系,那你就得查查是否是在同一个路由器下面了。我记得路由器是不转发UDP广播的,因此,不在同一个UDP下的255.255.255.255是不会收到广播信息的。
      

  11.   

    是在同一个路由下的局域网,后来的把HOST改为网段加255,即192.168.1.255,本机可以收到,但其它机还是不行。用255.255.255.255本机都不能收到
      

  12.   

    你这样直接把整个图片数据发送不行吧?一张图很大的话,应该会有问题。我以前也用TidUDPClient和TidUDPServer写过传图片的程序,是把图片分成一个一个包发的,请看这里:http://hi.baidu.com/0xcea4/blog/item/dfc989121f16f0866438db2c.html
      

  13.   

    indyTCP提供了个源码的例子~~~这个不会有这样子的情况的~~~你说的情况应该跟你的网络环境有关,而且UDP发包大小有限制的~~