Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2011.03.06;
Скачать: [xml.tar.bz2];

Вниз

Получение данных 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.003 c
2-1292010343
vlad
2010-12-10 22:45
2011.03.06
тип variant


2-1292161193
Ux
2010-12-12 16:39
2011.03.06
Запрет запуска


15-1290202186
Юрий
2010-11-20 00:29
2011.03.06
С днем рождения ! 20 ноября 2010 суббота


4-1245942576
erglnu
2009-06-25 19:09
2011.03.06
TrackPopupMenu + Трей - Меню не убирается((


15-1290067685
palva
2010-11-18 11:08
2011.03.06
О вечном двигателе





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский