数据格式如下:
typedef struct pkg_hdr
{ u16 length; //定长
u8 id;    //固定为1
}pkg_hdr;
typedef struct pkg_alert_body
{ char Cross_id[6];
char Cross_name[50];
char Alert_level[2];
char Alert_type[3]; //0-99
char Alert_message[200];
char Alert_time[15]
}pkg_alert_body;
typedef struct pkg_alert
{ struct pkg_hdr hdr;
struct pkg_alert_body body;
}pkg_alert;
由java程序通过UDP发出,格式为utf-8
delphi这边也通过UDP接收,怎么接收utf-8格式的字节流呢?能写个例子最好了,多谢!我用的是d7里的indy控件

解决方案 »

  1.   

    不管什么,接收的后按照那个结构体解析就行了。
    简单的参考代码
    procedure TFrmMain.IdUDPServerUDPRead(Sender: TObject; AData: TStream;
      ABinding: TIdSocketHandle);
    var
      ReturnData: array[0..1024] of char;
    begin
      AData.Read(ReturnData,AData.Size);
      

  2.   

    先弄清楚java端发的是不是其他处理的utf8,是每个自己都编码了还是某些内容编码了,delphi本身有utf8的处理函数,你找一下,然后还原成标准的流