Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
2-1152525664
zdm
2006-07-10 14:01
2006.07.30
PageControl


2-1152121542
Учениг
2006-07-05 21:45
2006.07.30
Размер переменной в памяти


15-1151989980
Ega23
2006-07-04 09:13
2006.07.30
С Днём рождения! 4 июля


2-1152352938
Grotesque
2006-07-08 14:02
2006.07.30
Progressbar


3-1148397351
rar
2006-05-23 19:15
2006.07.30
Трехзвенка




   Наверх