![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Indy 10 передача и прием данных
www111 © (2006-03-15 17:24:00)В предыдущих версиях Indy были функции writebuffer и readbuffer. С помощью них легко было передать запись. Как это сделать в Indy 10. Помогите плиз.
www111 (2006-03-15 18:14:00) [1]все нашел ошибку.... спасибо...
www111 (2006-03-15 17:51:00) [2]RClientInfo = record
ClientID: string[20];
ClientType: string[20];
end;
Eraser (2006-03-15 17:41:00) [3]
> www111 (15.03.06 17:36) [2]
> TCPClient.Socket.WriteDirect
убери WriteDirect... к хорошему может не привести.
> TCPClient.IOHandler.Write(RawToBytes(aCI, SizeOf(aCI)));
> aCI,rec: RClientInfo;
покажи описание структуры RClientInfo.
www111 (2006-03-15 17:36:00) [4]пробовал) не выходит
отправка:
function TTCPClientClass.SendToServer: boolean;
var
aCI,rec: RClientInfo;
aBuffer: TBytes;
begin
Result := False;
aCI.ClientID := 'CLIENT_DEFAULT';
aCI.ClientType := 'Client';
aBuffer := RawToBytes(aCI,sizeof(aCI));
TCPClient.Socket.WriteDirect(aBuffer);
// TCPClient.IOHandler.Write(RawToBytes(aCI, SizeOf(aCI)));
Result := True;
end;
прием:
procedure TTCPServerClass._OnExecute(aThread: TIdContext);
var
aBuffer: TBytes;
aCI: RClientInfo;
begin
//
aThread.Connection.Socket.ReadBytes(aBuffer,SizeOf(aCI),false);
BytesToRaw(aBuffer,aCI,SizeOf(aBuffer));
MessageController.SendMessage(aCI.ClientID + ';' + aCI.ClientType,0);
end;
Eraser (2006-03-15 17:30:00) [5]
> www111 (15.03.06 17:24)
.IOHandler.ReadBytes
.IOHandler.ReadStream
.IOHandler.Write