<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410494&amp;view=findpost&amp;p=3800628</guid>
        <pubDate>Sun, 02 Jun 2019 19:54:53 +0000</pubDate>
        <title>Клиент - серверное приложение (TCP,UDP)</title>
        <link>https://forum.sources.ru/index.php?showtopic=410494&amp;view=findpost&amp;p=3800628</link>
        <description><![CDATA[Oleg2004: Yу, что до меня, то я всегда на стороне WINAPI :)]]></description>
        <author>Oleg2004</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410494&amp;view=findpost&amp;p=3800616</guid>
        <pubDate>Sun, 02 Jun 2019 14:28:01 +0000</pubDate>
        <title>Клиент - серверное приложение (TCP,UDP)</title>
        <link>https://forum.sources.ru/index.php?showtopic=410494&amp;view=findpost&amp;p=3800616</link>
        <description><![CDATA[Armandodruch: Здравствуйте Подскажите пожалуйста, с помощью каких компонентов лучше создать клиент серверное приложение ? Сервер будет на Windows, а клиент на Lubuntu? Спасибо <br>
<br>
<a class='tag-url' href='http://pro-ohotu.ru/ohota/tochilnyj-brusok-6-bukv-skanvord.html' target='_blank'><img class='tag-img' src='http://arcanumclub.ru/smiles/smile13.gif' alt='user posted image'></a>]]></description>
        <author>Armandodruch</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410494&amp;view=findpost&amp;p=3711063</guid>
        <pubDate>Tue, 14 Mar 2017 20:39:06 +0000</pubDate>
        <title>Клиент - серверное приложение (TCP,UDP)</title>
        <link>https://forum.sources.ru/index.php?showtopic=410494&amp;view=findpost&amp;p=3711063</link>
        <description><![CDATA[KhNJu: Спасибо&#33;]]></description>
        <author>KhNJu</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410494&amp;view=findpost&amp;p=3710760</guid>
        <pubDate>Mon, 13 Mar 2017 09:46:15 +0000</pubDate>
        <title>Клиент - серверное приложение (TCP,UDP)</title>
        <link>https://forum.sources.ru/index.php?showtopic=410494&amp;view=findpost&amp;p=3710760</link>
        <description><![CDATA[Oleg2004: &quot;Переписать&quot; эти коды просто нельзя. :) <br>
Взаимодействие клиент/сервер по протоколу TCP абсолютно не похоже на взаимодействие их по UDP.<br>
Принцип совершенно иной.<br>
В клиенте нет connect(), передача и прием - совершенно другие функции.<br>
В сервере нет listen(),accept()и тд.<br>
Вот <a class='tag-url' href='http://www.programminglogic.com/sockets-programming-in-c-using-udp-datagrams/' target='_blank'> тут </a> есть код и того и другого.<br>
Просто вставить свой порт.]]></description>
        <author>Oleg2004</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410494&amp;view=findpost&amp;p=3710755</guid>
        <pubDate>Mon, 13 Mar 2017 09:37:25 +0000</pubDate>
        <title>Клиент - серверное приложение (TCP,UDP)</title>
        <link>https://forum.sources.ru/index.php?showtopic=410494&amp;view=findpost&amp;p=3710755</link>
        <description><![CDATA[Олег М: На сервере надо сделать bind (у тебя уже сделано), а потом в цикле - select (вместо listen и accept) и recv.<br>На клиенте - просто создать сокет с типом SOCK_DGRAM и делать sendto, на адрес сервера]]></description>
        <author>Олег М</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410494&amp;view=findpost&amp;p=3710641</guid>
        <pubDate>Sun, 12 Mar 2017 19:49:21 +0000</pubDate>
        <title>Клиент - серверное приложение (TCP,UDP)</title>
        <link>https://forum.sources.ru/index.php?showtopic=410494&amp;view=findpost&amp;p=3710641</link>
        <description><![CDATA[KhNJu: <strong class='tag-b'>Помогите, пожалуйста, переписать код приложения TCP клиент-сервер в UDP клиент - сервер...<br>
</strong><br>
Клиент:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">#include &#60;stdio.h&#62;</div><div class="code_line">#include &#60;cstdlib&#62;</div><div class="code_line">#include &#60;unistd.h&#62;</div><div class="code_line">#include &#60;stdarg.h&#62;</div><div class="code_line">#include &#60;string.h&#62;</div><div class="code_line">#include &#60;errno.h&#62;</div><div class="code_line">#include &#60;netdb.h&#62;</div><div class="code_line">#include &#60;sys/time.h&#62;</div><div class="code_line">#include &#60;sys/socket.h&#62;</div><div class="code_line">#include &#60;netinet/in.h&#62;</div><div class="code_line">#include &#60;arpa/inet.h&#62;</div><div class="code_line">#include &#60;ctime&#62;</div><div class="code_line">#include &#60;fstream&#62;</div><div class="code_line">#include &#60;sys/syspage.h&#62;</div><div class="code_line">#include &#60;sys/neutrino.h&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">using namespace std;</div><div class="code_line">&nbsp;</div><div class="code_line">void error( const char *msg, int err = EOK ) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;perror( msg );</div><div class="code_line">&nbsp;&nbsp; &nbsp;if( err != EOK ) errno = err;</div><div class="code_line">&nbsp;&nbsp; &nbsp;exit( EXIT_FAILURE );</div><div class="code_line">}</div><div class="code_line">&nbsp;double CyclesTomsec(uint64_t a)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;uint64_t b=SYSPAGE_ENTRY(qtime)-&#62;cycles_per_sec;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return a*1.0e6/(double) b;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">int main(int argc,char **argv)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;int i=0,mas[200], mas1[200];</div><div class="code_line">&nbsp;&nbsp; &nbsp;uint64_t t, t1=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ifstream in(&quot;mas.txt&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(!in) cout&#60;&#60;&quot;File not found\n&quot;, exit(EXIT_FAILURE);</div><div class="code_line">&nbsp;&nbsp; &nbsp;while(!in.eof()){</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;in&#62;&#62;mas[i]; i++;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;in.close();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;mas[i]=0xffff;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int n=i+1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;in_port_t listen_port = 9000;</div><div class="code_line">&nbsp;&nbsp; &nbsp;struct sockaddr_in peer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int s, rc;</div><div class="code_line">&nbsp;&nbsp; &nbsp;srand(time(NULL));</div><div class="code_line">&nbsp;&nbsp; &nbsp;char buf[20], echo[20];</div><div class="code_line">&nbsp;&nbsp; &nbsp;for(i=0; i&#60;n;i++){</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;memset( &amp;peer, 0, sizeof(peer));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;peer.sin_len = sizeof(peer);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;peer.sin_family = AF_INET;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;peer.sin_port = htons(listen_port);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;inet_aton( &quot;localhost&quot;, &amp;peer.sin_addr );</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;s=socket(AF_INET,SOCK_STREAM,0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (s&#60;0)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;error (&quot;create stream socket failed&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if &nbsp;(connect(s,(struct sockaddr *) &amp;peer,sizeof(peer)))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;error(&quot;connect failed&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;sprintf(buf, &quot;%d&quot;, mas[i]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; t = ClockCycles(); </div><div class="code_line">&nbsp;&nbsp; &nbsp;if( ( rc = write( s, buf, strlen(buf) + 1 )) &#60;= 0 ) { perror( &quot;write data failed&quot; ); break; };</div><div class="code_line">&nbsp;&nbsp; &nbsp;rc = read( s, echo, 20 );</div><div class="code_line">&nbsp;&nbsp; &nbsp;t1+=ClockCycles()-t;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if( rc &#60; 0 ) { perror( &quot;read data failed&quot; ); break;};</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if( rc == 0 ) { std::cout &#60;&#60; &quot;server closed connection&quot; &#60;&#60; std::endl; break; };</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if( strcmp(buf, echo )== 0 ) { cout &#60;&#60; &quot;wrong data&quot; &#60;&#60; std::endl; break;};</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;mas1[i]=atoi(echo);</div><div class="code_line">&nbsp;&nbsp; &nbsp;close( s );</div><div class="code_line">&nbsp;&nbsp; }</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">cout &#60;&#60; &quot;Common time of connection - &quot; &#60;&#60;CyclesTomsec(t1/n)&#60;&#60; &quot; mcs&quot;&#60;&#60;std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ofstream out(&quot;mas1.txt&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(!out) cout&#60;&#60;&quot;File not found\n&quot;, exit(EXIT_FAILURE);</div><div class="code_line">&nbsp;&nbsp; &nbsp;for(i=0;i&#60;n-1;i++)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;out&#60;&#60;mas1[i]&#60;&#60;&quot; &nbsp;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;out.close();</div><div class="code_line">&nbsp;&nbsp; &nbsp;exit(EXIT_SUCCESS);</div><div class="code_line">&nbsp;}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
<br>
Сервер:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">#include &#60;stdio.h&#62;</div><div class="code_line">#include &#60;cstdlib&#62;</div><div class="code_line">#include &#60;unistd.h&#62;</div><div class="code_line">#include &#60;stdarg.h&#62;</div><div class="code_line">#include &#60;string.h&#62;</div><div class="code_line">#include &#60;errno.h&#62;</div><div class="code_line">#include &#60;netdb.h&#62;</div><div class="code_line">#include &#60;sys/time.h&#62;</div><div class="code_line">#include &#60;sys/socket.h&#62;</div><div class="code_line">#include &#60;netinet/in.h&#62;</div><div class="code_line">#include &#60;arpa/inet.h&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">using namespace std;</div><div class="code_line">&nbsp;</div><div class="code_line">void error( const char *msg, int err = EOK ) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; perror( msg );</div><div class="code_line">&nbsp;&nbsp; &nbsp; if( err != EOK ) errno = err;</div><div class="code_line">&nbsp;&nbsp; &nbsp; exit( EXIT_FAILURE );</div><div class="code_line">} </div><div class="code_line">&nbsp;</div><div class="code_line">static int server(int s)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;int rc, k,k1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;char buf[20];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;rc = read( s, buf, 20 );</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;k=atoi(buf);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if( rc&#62;0)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(k!=0xffff){</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;k1=k^0xaa;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sprintf(buf, &quot;%d&quot;, k1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write( s, buf, strlen(buf) + 1 );</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return k; &nbsp; </div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;int main( int argc, &nbsp;char **argv)</div><div class="code_line">&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;in_port_t listen_port = 9000;</div><div class="code_line">&nbsp;&nbsp; &nbsp;struct sockaddr_in peer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;socklen_t peerlen;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int s, s1, k;</div><div class="code_line">&nbsp;&nbsp; &nbsp;const int on = 1;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;s = socket(AF_INET,SOCK_STREAM,0);</div><div class="code_line">&nbsp;&nbsp;if (s&#60;0)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;error (&quot;create stream socket failed&quot;);</div><div class="code_line">&nbsp;&nbsp;if (setsockopt(s,SOL_SOCKET,SO_REUSEADDR,&amp;on,sizeof(on)))</div><div class="code_line">&nbsp;&nbsp; &nbsp;error(&quot;setsockopt failed&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;memset( &amp;peer, 0, sizeof(peer));</div><div class="code_line">&nbsp;&nbsp; &nbsp;peer.sin_len = sizeof(peer);</div><div class="code_line">&nbsp;&nbsp; &nbsp;peer.sin_family = AF_INET;</div><div class="code_line">&nbsp;&nbsp; &nbsp;peer.sin_port = htons(listen_port);</div><div class="code_line">&nbsp;&nbsp; &nbsp;peer.sin_addr.s_addr=htonl(INADDR_ANY);</div><div class="code_line">&nbsp;&nbsp;if (bind(s,(struct sockaddr * ) &amp;peer,sizeof(peer)))</div><div class="code_line">&nbsp;&nbsp; &nbsp;error(&quot;bind failed&quot;);</div><div class="code_line">&nbsp;&nbsp;if (listen(s, 25))</div><div class="code_line">&nbsp;&nbsp; &nbsp;error(&quot;listen failed&quot;);</div><div class="code_line">&nbsp;&nbsp;do</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;peerlen = sizeof (peer);</div><div class="code_line">&nbsp;&nbsp; &nbsp;s1= accept(s,(struct sockaddr * &nbsp;)&amp;peer, &amp;peerlen); &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if &nbsp;(s1&#60;0)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;error(&quot;accept failed&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;k=server(s1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;close(s1);</div><div class="code_line">} while &nbsp;(k!=0xffff);</div><div class="code_line">&nbsp;exit(EXIT_SUCCESS);</div><div class="code_line">&nbsp;}</div></ol></div></div></div></div>]]></description>
        <author>KhNJu</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      </channel>
      </rss>
	