Главная страница
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.043 c
2-1152628408
AlexanderMS
2006-07-11 18:33
2006.07.30
Форма "сворачивается".


1-1150117477
неважно
2006-06-12 17:04
2006.07.30
Наследник TStringGrid a


8-1139400515
AlexeyMir
2006-02-08 15:08
2006.07.30
Как можно оцифровать определенный кусок из песни в файл .wav


15-1151646510
Иксик
2006-06-30 09:48
2006.07.30
Красиво


2-1152692183
dima_kds
2006-07-12 12:16
2006.07.30
Rave Report