Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо