Вниз
Скачать: CL | DM;

Indy 10 передача и прием данных   Найти похожие ветки 

 
www111   (2006-03-15 17:24) [0]

В предыдущих версиях Indy были функции writebuffer и readbuffer. С помощью них легко было передать запись. Как это сделать в Indy 10. Помогите плиз.


 
Eraser ©   (2006-03-15 17:30) [1]


> www111   (15.03.06 17:24)

.IOHandler.ReadBytes
.IOHandler.ReadStream

.IOHandler.Write


 
www111   (2006-03-15 17:36) [2]

пробовал) не выходит

отправка:

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:41) [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:51) [4]

RClientInfo = record
   ClientID: string[20];
   ClientType: string[20];
 end;


 
www111   (2006-03-15 18:14) [5]

все нашел ошибку.... спасибо...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
3-1147858011
BorisMor
2006-05-17 13:26
2006.07.23
Процедуры в InterBase


15-1150922919
JUS
2006-06-22 00:48
2006.07.23
Игроделы


2-1151949475
HBreaker
2006-07-03 21:57
2006.07.23
Ошибка CoInitialize has not been called


2-1151953146
Yegorchic
2006-07-03 22:59
2006.07.23
Длина и высота TListView.Item


5-1135776058
Змей
2005-12-28 16:20
2006.07.23
установка компоненты




   Наверх