近日,由于项目的需要,在项目中有一个聊天功能,原来用的是indy9,但是在执行程序的时候,客户端由于接收消息过于占用系统频率,选成"死机"现象严重。故不得不改用indy10.
在新的Indy10控件中,与Indy9发生了很大的变化。下面就UdpServer的接收方法以例程的方法简单的说明一下;
Indy9:
UDPServer(Sender:TObject;AData:Thread;Abinding:tidsocketHandle);
indy10:
UDPRead(Sender: TObject; AData: TBytes;ABinding: TIdSocketHandle);
在读取数据的时候,返回的数据类型发生了变化。本人在网上查找到了很多的资料。都没得详细的解决办法。只是接收String的数据有一些方法提供。今天我发送了一条记录形式的数据接收成功;特此记下以便日后以供参考;
注意:可以在两个工程中分别放值一个tidudpserver控件,亦或在一个工程中放置两个tidudpserver控件亦可。
example:
Type
TComm = Record
msgType: integer;
Context: String[254];
end;