Главная страница
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.026 c
3-1148477220
p_evghenii
2006-05-24 17:27
2006.07.30
Группировка запроса по датам


2-1152625504
Grotesque
2006-07-11 17:45
2006.07.30
Небольшой вопрос


6-1141231360
Призрак
2006-03-01 19:42
2006.07.30
Проигрыватель ASF


2-1152188161
Footballer
2006-07-06 16:16
2006.07.30
Проблема с TImageList :-(


2-1152271204
Crazy monkey
2006-07-07 15:20
2006.07.30
2 Вопроса по TreeView