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

Вниз

прослушивание порта UDP   Найти похожие ветки 

 
begginer   (2006-07-06 10:46) [0]

Собственно есть программа (чат), работает по UDP... Хочу написать собственный клиент, с отправкой сообщений я разобрался, не могу только получать сообщения... Вот у меня и вопрос как получать пакеты которые пришли на этот UDP порт?


 
StriderMan ©   (2006-07-06 12:07) [1]

а какие используются компаненты для работы с UDP?


 
begginer   (2006-07-06 18:10) [2]

да это не столь важно, я разобрался как отправлять с помощью Indy UDP client, а вот с idUDPServer не смог разобраться как его настроить и заставить слушать (принимать пакеты на определенном порту) пробовал через событие idUDPServerUDPRead, но оно никогда не срабатывало, хотя сообщения приходили... Также пробовал через WinSock, но там после вызова listen не понял как принимать пакеты :(


 
Zeqfreed ©   (2006-07-06 18:12) [3]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1021


 
begginer   (2006-07-08 19:36) [4]

Спасибо за сслылку, буду читать... вот как я пытася ловить пакеты:


var
 my_sock: TSocket;
 tmp: TWSAData;
 addr: TSockAddr;
 res_bind: integer;
 optlen: integer;
 optval: PChar;
begin
 WSAStartup(MakeWord(2,2), tmp);
 my_sock:=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
...
 addr.sin_family:= AF_INET;
 addr.sin_addr.S_addr:= htonl(INADDR_ANY);
 addr.sin_port:= htons(8169); // порт который меня интересует...
...
 res_bind:= bind(my_sock, addr, SizeOf(addr));
 if res_bind <> 0 then
 begin
   setsockopt(my_sock, SOL_SOCKET, SO_REUSEADDR, optval, optlen);
   bind(my_sock, addr, SizeOf(addr));
 end;
....
 reciev(my_sock);
.....
 WSACleanup;

// теперь процедура получения

procedure reciev(my_sock: TSocket);
var
 buf: PChar;
 bufsize: DWORD;
 from: sockaddr_in;
 fromlen: integer;
 wsaerr: integer;
begin
 bufsize:= 1024;
 GetMem(buf, bufsize);
 fromlen:= sizeof(from);
 while true do
 begin
 wsaerr:= recvfrom(my_sock, buf^, bufsize, 0, from, fromlen);
 ...
 end;
end;

далее идет обработка результата, но в буфере никогда ничего не бывает... Может где ошибка есть, сам найти не могу :(



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

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

Наверх




Память: 0.47 MB
Время: 0.046 c
15-1151668888
PSPF2003
2006-06-30 16:01
2006.07.30
Мертвые ссылки


15-1151745887
homm
2006-07-01 13:24
2006.07.30
HTML: Опять эксплорер тупит


6-1142589590
Volf_555
2006-03-17 12:59
2006.07.30
Как перехватить сообщение ICQ (QIP) и ответить на него?


15-1151655445
Ломброзо
2006-06-30 12:17
2006.07.30
Плагин к IE или Opera


1-1150537672
МикроДИП
2006-06-17 13:47
2006.07.30
Вопрос по компоненту Chart (TChart)...