The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
udp server, !*! astashov, 12-Июн-10, 19:13  [смотреть все]
Доброе время суток.

А подскажите пж, как сделать чтоб этот код отправлял данные клиенту в ответ на определенный порт. Сам больше а то когда клиент что нить примылает мне на порт 6666, то сервак ему в ответ на (к примеру) 50603 отсылает. а надо чтоб на 6666 клиенту ответ кинул.


#!/usr/bin/perl -w
use strict;
use IO::Socket;
my($sock, $oldmsg, $newmsg, $hisaddr, $hishost, $MAXLEN, $PORTNO);
$MAXLEN = 10;
$PORTNO = 6666;

$sock = IO::Socket::INET->new(
LocalPort => $PORTNO,
Proto => 'udp'
) or die "socket: $@";
    print "Awaiting UDP messages on port $PORTNO\n";

$sock->autoflush(1);

$oldmsg = "This is the starting message.";
    
while ($sock->recv($newmsg, $MAXLEN)) {
    my($port, $ipaddr) = sockaddr_in($sock->peername);
    print "Client said ``$newmsg''\n";    
    $sock->send($oldmsg);
    $oldmsg = "$newmsg";
}
die "recv: $!";

Спасибо Вам большое

  • udp server, !*! Square, 20:28 , 12-Июн-10 (1)
    • udp server, !*! astashov, 20:34 , 12-Июн-10 (2)
      >>Доброе время суток.
      >>
      >>А подскажите пж, как сделать чтоб этот код отправлял данные клиенту в
      >>ответ на определенный порт. Сам больше а то когда клиент что
      >>нить примылает мне на порт 6666, то сервак ему в ответ
      >>на (к примеру) 50603 отсылает. а надо чтоб на 6666 клиенту
      >>ответ кинул.
      >
      >Очевидно необходимо открыть сокет на этот порт...

      Т.е. только такой вариант?
      Я про этот вариант с самого начала думал, но просто думал может можно как-то подменить локальный порт клиента. К примеру как нибудь через флаги. Сам просто ничего не нашел.

      Вообщем подменить порт перед функцией send не получиться?




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру