Форум: "Начинающим";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];
Внизпрослушивание порта 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c