Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.03.06;
Скачать: CL | DM;

Вниз

Получение данных TCPServer   Найти похожие ветки 

 
d@vinchi ©   (2009-02-24 19:39) [0]

Подскажите как с помощью компонента TCPServer получить данные, которые не в "заголовке" пакета, а в теле "пакета", т.е. в обработчике события TcpServer1Accept методом ClientSocket.Receiveln успешно читается заголовок пакета, а вот как получить следующие за ним данные?


 
Сергей М. ©   (2009-02-24 19:55) [1]

Чем "заголовок пакета" принципиально отличается от "данных" ?


 
d@vinchi ©   (2009-02-24 20:13) [2]

дело в том что при чтении данных методом Receiveln я получаю не все содержимое пакета, выяснил путем прослушивания трафика программкой wireshark. Когда я получаю данные методом Receiveln то получаю примерно следующее:
INVITE sip:ocs@domain.ru SIP/2.0
ms-user-data: ms-publiccloud=true;ms-federation=true
Record-Route: <sip:ocs.domain.ru:4065;transport=tcp;maddr=x.x.x.x;ms-role-rs-to;lr>;tag=8DA612C8238CD08A57C32B55380FE55C
Via: SIP/2.0/TCP x.x.x.x:4065;branch=z9hG4bKDBB9A545.046C869F;branched=FALSE
...
Content-Type: application/csta+xml

этот же пакет wireshark получает так:
Message Header
INVITE sip:ocs@domain.ru SIP/2.0
ms-user-data: ms-publiccloud=true;ms-federation=true
Record-Route: <sip:ocs.domain.ru:4065;transport=tcp;maddr=x.x.x.x;ms-role-rs-to;lr>;tag=8DA612C8238CD08A57C32B55380FE55C
Via: SIP/2.0/TCP x.x.x.x:4065;branch=z9hG4bKDBB9A545.046C869F;branched=FALSE
...
Content-Type: application/csta+xml
Message Body
<?xml version="1.0"?><RequestSystemStatus xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed3"><extensions>.......

Судя по тому что wireshark разбил пакет на заголовок и тело пакета, я предположил что последняя строка в отдельном блоке данных - в любом случае методом Receiveln она не читается, а нужно ее достать!!!


 
Сергей М. ©   (2009-02-25 08:17) [3]

Что значит "не читается" ?


 
brother ©   (2009-02-25 09:23) [4]

а она должна возвращать?


 
d@vinchi ©   (2009-02-25 09:42) [5]

to Сергей М.: значит что Receiveln не возвращает эту строку...
to brother: предпологаю что нет, может эта строка передается в потоке или еще как...


 
brother ©   (2009-02-25 09:46) [6]

> to brother: предпологаю что нет, может эта строка передается
> в потоке или еще как...

может хватит гадать? прочитай в справке...


 
d@vinchi ©   (2009-02-25 09:49) [7]

еслибы я в справке нашел ответ тут бы не задавал глупых вопросов - все осложняется что с приемом\передачей данных по сети сталкиваюсь впервые и времени как обычно нет...
уважаемый, brother, без обид - лучше умничать по делу...


 
brother ©   (2009-02-25 09:50) [8]

код получения показывай!)


 
d@vinchi ©   (2009-02-25 10:03) [9]

procedure TForm1.TcpServer1Accept(sender: TObject; ClientSocket: TCustomIpClient);
var
 s: string;
begin
 repeat
   begin
     s:=ClientSocket.Receiveln;
     if s <> "" then Memo1.Lines.Add(s);
   end
 until s = "";
end;


 
Сергей М. ©   (2009-02-25 10:07) [10]


> d@vinchi


Чему у тебя равно св-во BlockMode ?


 
d@vinchi ©   (2009-02-25 10:12) [11]

bmThreadBlocking


 
Сергей М. ©   (2009-02-25 10:25) [12]

В доп.потоке обращение к виз. VCL-контролам недопустимо.
Обработчик OnAccept в случае bmThreadBlocking выполняется в доплнительном потоке.


 
d@vinchi ©   (2009-02-25 10:31) [13]

т.е. надо использовать не зизуальный компонент? что тогда использовать (желательно с аналогичным примерчиком)?


 
Сергей М. ©   (2009-02-25 10:35) [14]


> надо использовать не зизуальный компонент?


Ты что вообще сотворяешь ? SIP-прокси что ли ?


 
Сергей М. ©   (2009-02-25 10:43) [15]

Читать

http://www.niits.ru/public/2003/011.pdf

п.7.5.1 непосредственно связан с темой твоего вопроса


 
d@vinchi ©   (2009-02-25 10:43) [16]

ну можно сказать и так, вообще больше SIP-шлюз...


 
Сергей М. ©   (2009-02-25 10:49) [17]

Ну тогда читай этот док-т до полного просветления.
Работа с транспортом по этому протоколу практически не отличается от работы по протоколу HTTP, а по HTTP-серверам в Тырнете навалом примеров


 
d@vinchi ©   (2009-02-25 11:01) [18]

Сергей М. - огромное спасибо за информацию!!! в п.7.1.5. действительно решение!!!



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

Текущий архив: 2011.03.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.003 c
3-1253856043
vegarulez
2009-09-25 09:20
2011.03.06
[SQL, MS Access] Вопрос про CREATE TABLE. Формат полей.


2-1292235834
Ikar
2010-12-13 13:23
2011.03.06
Тип Char


2-1292047073
gvozdkoff
2010-12-11 08:57
2011.03.06
ходим по RadioButton по нажатию кнопки


15-1290852684
Чайник
2010-11-27 13:11
2011.03.06
Удалить файл


2-1292054016
Ikar
2010-12-11 10:53
2011.03.06
С++ -> Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский