![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Indy, IdTCPClient.writebuffer
pai © (2004-03-04 13:14:00)Люди добрые подскажите что не так делаю. Необходимо на сервер из клиента заслать буфер и не получается (работает через раз)!!! Использую IdTCPClient и Server. Вот исходники:
КЛИЕНТ
var s: string;
with IdTCPClient do
begin
connect;
openwriteBuffer
writeBuffer(s, sizeof(s));
CloseWriteBuffer;
Dqisconnect;
end;
СЕРВЕР
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var a: string;
begin
with AThread.Connection do
begin
ReadBuffer(a, считываемый размер);
end;
end;
Digitman (2004-03-05 15:54:00) [1]а для головы использовать первоисточники + книги + документацию к компонентам + исх.тексты компонентов + встроенный отладчик
S@shka (2004-03-05 15:42:00) [2]Для звука использовать UDP
Reindeer Moss Eater (2004-03-05 14:43:00) [3]И это все дело отправляю writebuqffer(p, bufsize). Глючит!!!
writebuqffer(p ^, bufsize)
Digitman (2004-03-05 14:30:00) [4]
> глючит
> коряво
ты знаешь что такое "отладчик" ?
pai (2004-03-05 13:59:00) [5]но я примерно так пробовал, глючит. То есть чтобы передать звук я смотрю когда буфер записи полный, то я беру указатель начала буфера P (переменая типа Pointer) и размер буфера bufSize. И это все дело отправляю writebuqffer(p, bufsize). Глючит!!! Пытался записать буфер в поток. Но даже не отправляя поток по сети пытаюсь проиграть, он коряво проигрывает. Поэтому работаю только с буфером!!!
Digitman (2004-03-04 13:38:00) [6]
> так это я пошлю только 1 символ
с чего ты взял ?
ты пошлешь Length(s) символов
а S[1] означает , что за адрес буфера следует считать адрес 1-го символа в буфере стр.переменной
> sizeof(s));
это размер строковой переменной (для huge strings - это размер указателя, т.е. 4байта), а не размер стр.данных, которые контролирует внутренняя дин.структура, на которую указывает S
Reindeer Moss Eater (2004-03-04 13:34:00) [7]WriteBuffer(s[1],Length(s))
pai (2004-03-04 13:33:00) [8]так это я пошлю только 1 символ, а мне надо например строку. А если точнее я пересылаю звук в реальном режиме времени. То есть имею событие которое срабатывает когда буфер записи заполнен и на это событие мне этот буфер надо переслать. С текстом это так просто тренируюсь!!!
pai (2004-03-04 13:31:00) [9]так это я пошлю только 1 символ, а мне надо например строку. А если точнее я пересылаю звук в реальном режиме времени. То есть имею событие которое срабатывает когда буфер записи заполнен и на это событие мне этот буфер надо переслать. С текстом это так просто тренируюсь!!!
Reindeer Moss Eater (2004-03-04 13:21:00) [10]WriteBuffer(s[1],Length(s))