<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: udp server</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8771.html</link>
    <description>Доброе время суток.&lt;br&gt;&lt;br&gt;А подскажите пж, как сделать чтоб этот код отправлял данные клиенту в ответ на определенный порт. Сам больше а то когда клиент что нить примылает мне на порт 6666, то сервак ему в ответ на (к примеру) 50603 отсылает. а надо чтоб на 6666 клиенту ответ кинул.&lt;br&gt;&lt;br&gt;&lt;br&gt;#!/usr/bin/perl -w&lt;br&gt;use strict;&lt;br&gt;use IO::Socket;&lt;br&gt;my($sock, $oldmsg, $newmsg, $hisaddr, $hishost, $MAXLEN, $PORTNO);&lt;br&gt;$MAXLEN = 10;&lt;br&gt;$PORTNO = 6666;&lt;br&gt;&lt;br&gt;$sock = IO::Socket::INET-&amp;gt;new(&lt;br&gt;LocalPort =&amp;gt; $PORTNO,&lt;br&gt;Proto =&amp;gt; &apos;udp&apos;&lt;br&gt;) or die &quot;socket: $&#064;&quot;;&lt;br&gt;    print &quot;Awaiting UDP messages on port $PORTNO&#092;n&quot;;&lt;br&gt;&lt;br&gt;$sock-&amp;gt;autoflush(1);&lt;br&gt;&lt;br&gt;$oldmsg = &quot;This is the starting message.&quot;;&lt;br&gt;    &lt;br&gt;while ($sock-&amp;gt;recv($newmsg, $MAXLEN)) &#123;&lt;br&gt;    my($port, $ipaddr) = sockaddr_in($sock-&amp;gt;peername);&lt;br&gt;    print &quot;Client said &#096;&#096;$newmsg&apos;&apos;&#092;n&quot;;    &lt;br&gt;    $sock-&amp;gt;send($oldmsg);&lt;br&gt;    $oldmsg = &quot;$newmsg&quot;;&lt;br&gt;&#125; &lt;br&gt;die &quot;recv: $!&quot;;&lt;br&gt;&lt;br&gt;Спасибо Вам большое&lt;br&gt;&lt;br&gt;</description>

<item>
    <title>udp server (astashov)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8771.html#4</link>
    <pubDate>Sat, 12 Jun 2010 18:13:02 GMT</pubDate>
    <description>спасибо.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>udp server (elvenic)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8771.html#3</link>
    <pubDate>Sat, 12 Jun 2010 18:04:29 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;ответ кинул. &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;Очевидно необходимо открыть сокет на этот порт... &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Т.е. только такой вариант? &lt;br&gt;&amp;gt;Я про этот вариант с самого начала думал, но просто думал может &lt;br&gt;&amp;gt;можно как-то подменить локальный порт клиента. К примеру как нибудь через &lt;br&gt;&amp;gt;флаги. Сам просто ничего не нашел. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Вообщем подменить порт перед функцией send не получиться? &lt;br&gt;&lt;br&gt;Порт на клиенте где этот клиент ожидает ответа от сервера определяется в момент когда клиент открывает сокет для связи с сервером - в этот момент клиент может сказать bind() что бы привязать сокет к какому-нибудь определенному порту (напр. 6666). Если клиент не сказал bind(), то этот сокет перед посылкой сообщения серверу будет привазан системой к какому-нибудь произвольному свободному порту (напр. 50603). Когда сервер принял сообщение, это сообщение содержит &apos;обратный адрес&apos;, т.е IP адрес хоста клиента и порт где клиент ждет ответа - и это именно тот порт который привязан на хосте клиента к сокету в который клиент послал сообщение - е</description>
</item>

<item>
    <title>udp server (astashov)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8771.html#2</link>
    <pubDate>Sat, 12 Jun 2010 16:34:24 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Доброе время суток. &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;А подскажите пж, как сделать чтоб этот код отправлял данные клиенту в &lt;br&gt;&amp;gt;&amp;gt;ответ на определенный порт. Сам больше а то когда клиент что &lt;br&gt;&amp;gt;&amp;gt;нить примылает мне на порт 6666, то сервак ему в ответ &lt;br&gt;&amp;gt;&amp;gt;на (к примеру) 50603 отсылает. а надо чтоб на 6666 клиенту &lt;br&gt;&amp;gt;&amp;gt;ответ кинул. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Очевидно необходимо открыть сокет на этот порт... &lt;br&gt;&lt;br&gt;Т.е. только такой вариант?&lt;br&gt;Я про этот вариант с самого начала думал, но просто думал может можно как-то подменить локальный порт клиента. К примеру как нибудь через флаги. Сам просто ничего не нашел.&lt;br&gt;&lt;br&gt;Вообщем подменить порт перед функцией send не получиться?&lt;br&gt;</description>
</item>

<item>
    <title>udp server (Square)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8771.html#1</link>
    <pubDate>Sat, 12 Jun 2010 16:28:24 GMT</pubDate>
    <description>&amp;gt;Доброе время суток. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;А подскажите пж, как сделать чтоб этот код отправлял данные клиенту в &lt;br&gt;&amp;gt;ответ на определенный порт. Сам больше а то когда клиент что &lt;br&gt;&amp;gt;нить примылает мне на порт 6666, то сервак ему в ответ &lt;br&gt;&amp;gt;на (к примеру) 50603 отсылает. а надо чтоб на 6666 клиенту &lt;br&gt;&amp;gt;ответ кинул. &lt;br&gt;&lt;br&gt;Очевидно необходимо открыть сокет на этот порт...&lt;br&gt;</description>
</item>

</channel>
</rss>
