<?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=89547&amp;view=findpost&amp;p=668827</guid>
        <pubDate>Sun, 03 Apr 2005 13:05:16 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668827</link>
        <description><![CDATA[SimBiOd: При обьявлении.<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">char * shut = &quot;C:\windows\system32\calc.exe&quot;;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><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">char shut[256];</div><div class="code_line">wsprintf(shut,&quot;C:\windows\system32\calc.exe&quot;)</div></ol></div></div></div></div><br>
Но с последним я не уверен...  :rolleyes:]]></description>
        <author>SimBiOd</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668635</guid>
        <pubDate>Sun, 03 Apr 2005 09:55:33 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668635</link>
        <description><![CDATA[barberan: надо обнулить чотоль? При объявлении? или когда?]]></description>
        <author>barberan</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668610</guid>
        <pubDate>Sun, 03 Apr 2005 09:24:34 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668610</link>
        <description><![CDATA[SimBiOd: Имхо дело вот в чём:<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">char recbuf[MAX]={NULL};</div></ol></div></div></div></div>]]></description>
        <author>SimBiOd</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668608</guid>
        <pubDate>Sun, 03 Apr 2005 09:22:09 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668608</link>
        <description><![CDATA[barberan: Да, все разобрался... Спасибо. Теперь другая проблема, я посылаю сообщение, все нормально работает, но второе сообщение посылается не длиннее первого, вот как я принимаю и вывожу его:<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">...</div><div class="code_line">#define MAX 1200</div><div class="code_line">...</div><div class="code_line">char recbuf[MAX];</div><div class="code_line">&nbsp;</div><div class="code_line">int rev;</div><div class="code_line">rev = recv(s2,recbuf,strlen(recbuf),0);</div><div class="code_line">if(rev == 0)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;MessageBox(0,&quot;Receive error! Nothing received!&quot;,&quot;Server&quot;,MB_ICONERROR);</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSACleanup();</div><div class="code_line">&nbsp;&nbsp; &nbsp;closesocket(s1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;closesocket(s2);</div><div class="code_line">&nbsp;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">MessageBox(0,recbuf,&quot;Hello!&quot;,MB_OK);</div></ol></div></div></div></div><br>
<br>
Вот как я его отправляю из MFC проги:<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">//Общая ф-ция отправки сообщения//</div><div class="code_line">void CclientMFCDlg::sendx(const char * mesg, SOCKET socket)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;send(socket,mesg,strlen(mesg)+1,0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;mesg = NULL;</div><div class="code_line">}</div><div class="code_line">//-------------------------------------------------------//</div><div class="code_line">&nbsp;</div><div class="code_line">//Использование//</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;CString shut = &quot;&quot;; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp;GetDlgItemText(IDC_EDIT1,shut);</div><div class="code_line">&nbsp;&nbsp; &nbsp;sendx(shut,ss); &nbsp;//ss - &nbsp;отправляющий сокет</div></ol></div></div></div></div><br>
После перезапуска сервера, сообщ. отправляется любой длинны только один раз, потом не длиннее первого, очевидно дело в сервере(&quot;принималке-выводилке&quot;);<br>
<br>
Даже после перезапуска что-то отпраляется странно, не такой длины как надо, текст прям рубится. Что делать? :)  :lool:]]></description>
        <author>barberan</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668598</guid>
        <pubDate>Sun, 03 Apr 2005 09:14:06 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668598</link>
        <description><![CDATA[SimBiOd: Вот так в твоём примере:<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">/*SERVER*/</div><div class="code_line">&nbsp;</div><div class="code_line">#include &#60;winsock2.h&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">#pragma comment(lib,&quot;ws2_32.lib&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">//Global//</div><div class="code_line">#define MAX 1200</div><div class="code_line">#define PORT 12345</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">WSAData wsa;</div><div class="code_line">SOCKADDR_IN ser;</div><div class="code_line">SOCKET s1 = INVALID_SOCKET,s2 = INVALID_SOCKET;</div><div class="code_line">//~Global~//</div><div class="code_line">&nbsp;</div><div class="code_line">int WINAPI WinMain(HINSTANCE,HINSTANCE,LPTSTR,int)</div><div class="code_line">{</div><div class="code_line">if ( WSAStartup(MAKEWORD(2,2),&amp;wsa) )</div><div class="code_line">{</div><div class="code_line">MessageBox(0,&quot;WSAStartup error&quot;,&quot;Server&quot;,MB_ICONERROR);</div><div class="code_line">return 0;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">ser.sin_addr.s_addr = INADDR_ANY;</div><div class="code_line">ser.sin_family = AF_INET;</div><div class="code_line">ser.sin_port = htons(PORT);</div><div class="code_line">s1 = socket(AF_INET,SOCK_STREAM,0); </div><div class="code_line">if(s1 == INVALID_SOCKET)</div><div class="code_line">{</div><div class="code_line">MessageBox(0,&quot;Invalid Socket!&quot;,&quot;Error&quot;,MB_ICONERROR);</div><div class="code_line">WSACleanup();</div><div class="code_line">return 0;</div><div class="code_line">}</div><div class="code_line">int sa_size = sizeof(ser);</div><div class="code_line">&nbsp;</div><div class="code_line">if( bind(s1,(struct sockaddr * )&amp;ser,sa_size) )</div><div class="code_line">{</div><div class="code_line">MessageBox(0,&quot;Bind() error&quot;,&quot;Server&quot;,MB_ICONERROR);</div><div class="code_line">WSACleanup();</div><div class="code_line">return ERROR;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">if (listen(s1,0x100) )</div><div class="code_line">{</div><div class="code_line">MessageBox(0,&quot;Listen error&quot;,&quot;Server&quot;,MB_ICONERROR);</div><div class="code_line">WSACleanup();</div><div class="code_line">closesocket(s1);</div><div class="code_line">return 0;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">bool ContinueWaiting=true;</div><div class="code_line">while(ContinueWaiting){</div><div class="code_line">s2 = accept(s1,(struct sockaddr * )&amp;ser,&amp;sa_size);</div><div class="code_line">if(s2 == INVALID_SOCKET)</div><div class="code_line">{</div><div class="code_line">MessageBox(0,&quot;socket-2; Accept() error&quot;,&quot;Server&quot;,MB_ICONERROR);</div><div class="code_line">ContinueWaiting=false;</div><div class="code_line">WSACleanup();</div><div class="code_line">closesocket(s1);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">char recbuf[MAX]={NULL};</div><div class="code_line">int rev=0;</div><div class="code_line">rev = recv(s2,recbuf,MAX+1,0);</div><div class="code_line">if(rev == 0){</div><div class="code_line">MessageBox(0,&quot;Receive error! Nothing received!&quot;,&quot;Server&quot;,MB_ICONERROR);</div><div class="code_line">WSACleanup();</div><div class="code_line">closesocket(s1);</div><div class="code_line">closesocket(s2);</div><div class="code_line">ContinueWaiting=false;</div><div class="code_line">}</div><div class="code_line">else{</div><div class="code_line">MessageBox(0,&quot;Something were received!Now trying to execute command!&quot;,&quot;Server&quot;,MB_OK);</div><div class="code_line">MessageBox(0,recbuf,0,0);</div><div class="code_line">char *buffer=recbuf;</div><div class="code_line">if(buffer==&quot;Quit&quot;) return 0;</div><div class="code_line">}</div><div class="code_line">ShellExecute(0,&quot;open&quot;,recbuf,0,0,SW_SHOWNORMAL);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">WSACleanup();</div><div class="code_line">closesocket(s1);</div><div class="code_line">&nbsp;</div><div class="code_line">closesocket(s2);</div><div class="code_line">return 0;</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>SimBiOd</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668276</guid>
        <pubDate>Sat, 02 Apr 2005 18:32:23 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668276</link>
        <description><![CDATA[Oleg2004: <strong class='tag-b'>barberan</strong><br>
К сожалению, на Дельфи у меня ничего нет и я на нем не пишу<br>
Но вот для Unix-a программа есть, а логика практически одна и та же. <br>
Тем более все комменты есть<br>
Правда этот сервер не получает данные - те у него нет recv, но его просто вставить<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">#define MYPORT 3490 &nbsp; /* Порт, на который будет идти соединение с пользователем*/</div><div class="code_line">#define BACKLOG 10 &nbsp;/* Сколько ожидающих подключений может быть в очереди */</div><div class="code_line">int main()</div><div class="code_line">&nbsp;&nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; int sd, newsd; /* Слушаем на сокете sd, новое подключение на сокете newsd */</div><div class="code_line">&nbsp;&nbsp; &nbsp; struct sockaddr_in my_addr; &nbsp; &nbsp;/* Серверная адресная информация */</div><div class="code_line">&nbsp;&nbsp; &nbsp; struct sockaddr_in their_addr; /* Адресная информация запрашивающей стороны (клиента) */</div><div class="code_line">int sin_size;</div><div class="code_line">/* Создаем сокет, ориентированный на соединение, для домена Интернет */</div><div class="code_line">if ((sd = socket (AF_INET, SOCK_STREAM, 0)) == -1) </div><div class="code_line">{ &nbsp; perror (&quot;socket&quot;);</div><div class="code_line">exit (1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; my_addr.sin_family = AF_INET; &nbsp; &nbsp; &nbsp; /* В порядке байтов хоста */</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; my_addr.sin_port = htons (MYPORT); &nbsp;/* short, в порядке байтов сети */</div><div class="code_line">/* Авто-заполнение IP-адресом серверного сетевого интерфейса */</div><div class="code_line">my_addr.sin_addr.s_addr = INADDR_ANY; </div><div class="code_line">bzero(&amp;(my_addr.sin_zero), 8); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* Обнуляем остальную часть struct */</div><div class="code_line">/* Связываем только-что созданный сокет с его локальным адресом */</div><div class="code_line">if (bind(sd, (struct sockaddr *)&amp;my_addr, sizeof (struct sockaddr)) = = -1) </div><div class="code_line">{</div><div class="code_line">perror (&quot;bind&quot;);</div><div class="code_line">exit (1);</div><div class="code_line">}</div><div class="code_line">/* Организуем очередь прослушивания сети на порту MYPORT */</div><div class="code_line">if (listen (sd, BACKLOG) = = -1) {</div><div class="code_line">perror (&quot;listen&quot;);</div><div class="code_line">exit (1);</div><div class="code_line">&nbsp;&nbsp; }</div><div class="code_line">while(1) /* Главный цикл accept ()*/</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ &nbsp; </div><div class="code_line">sin_size = sizeof (struct sockaddr_in);</div><div class="code_line">if ((newsd = accept (sd, (struct sockaddr *)&amp;their_addr, &amp;sin_size)) = = -1) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;{ &nbsp; &nbsp; perror (&quot;accept&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue; /* Несмотря на неудачу, продолжаем прием*/</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">/* Приняли запрос на соединение и принимаем решение ответить на него*/</div><div class="code_line">printf (&quot;Сервер: Принял соединение от %s\n &quot;, inet_ntoa (their_addr.sin_addr));</div><div class="code_line">if(!fork ()) </div><div class="code_line">{/* Мы находимся в дочернем порожденном процессе */</div><div class="code_line">/* Потомок наследует все файловые дескрипторы родителя, а значит, и newsd */</div><div class="code_line">/* Теперь таких сокетов два - в каждом процессе по одному */</div><div class="code_line">/* Шлем клиенту 14 байтов */</div><div class="code_line">if (send(newfd, &quot; Привет, мир! \n&quot;, 14, 0) = = -1)perror (&quot;send&quot;);</div><div class="code_line">close(newsd); &nbsp; /* Закрываем сокет newsd &nbsp;в порожденном процессе */</div><div class="code_line">exit (0); &nbsp; /* Завершаем передачу данных из процесса потомка */</div><div class="code_line">} &nbsp; &nbsp; &nbsp; /* Здесь заканчивается текст программы-потомка*/</div><div class="code_line">close (newsd); &nbsp;/* Закрываем сокет newsd – родитель в нем не нуждается */</div><div class="code_line">while (waitpid (-1, NULL, WNOHANG) &#62; 0); /* Очищаем порожденные процессы */</div><div class="code_line">&nbsp;&nbsp; &nbsp;} &nbsp; /*Конец цикла accept()*/</div><div class="code_line">} &nbsp; /* Завершаем процесс сервера */</div></ol></div></div></div></div>]]></description>
        <author>Oleg2004</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668266</guid>
        <pubDate>Sat, 02 Apr 2005 18:15:03 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668266</link>
        <description><![CDATA[barberan: <strong class='tag-b'>Oleg2004</strong><br>
Не мог бы ты написать, как это будет выглядеть в данном случае?0чень прошу... если можешь..]]></description>
        <author>barberan</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668258</guid>
        <pubDate>Sat, 02 Apr 2005 18:03:48 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668258</link>
        <description><![CDATA[Oleg2004: <strong class='tag-b'>barberan</strong><br>
Для того чтобы сервер все время ждал коннекта, в бесконечный цикл ставится accept и соответствующая обработка полученного запроса, те recv и send <br>
После выполнения работ по обслуживанию запроса присоединенный сокет убивается и возвращаемся опять на accept, дожидаясь следующего коннекта, а если он уже есть, то снова приступаем к обработке]]></description>
        <author>Oleg2004</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668158</guid>
        <pubDate>Sat, 02 Apr 2005 16:06:03 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668158</link>
        <description><![CDATA[SimBiOd: Так в этом и дело, что клиент должен работать, а перед завершением работы пускай посылает серверу &quot;Quit&quot; и всё.  &lt;_&lt;]]></description>
        <author>SimBiOd</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668156</guid>
        <pubDate>Sat, 02 Apr 2005 16:05:46 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668156</link>
        <description><![CDATA[Lamooo: Извените пожалуйста я здесь новенький, скажите пожалуйста как можно на Visual C++ сделать так, чтобы модем снимал трубку&#33;&#33;&#33; Напишите исходник пожалуйста&#33;&#33;&#33;]]></description>
        <author>Lamooo</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668111</guid>
        <pubDate>Sat, 02 Apr 2005 14:56:22 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668111</link>
        <description><![CDATA[barberan: Сделал все как ты сказал  :) Теперь все запустив клиент 1 раз, получаем бесканечный вызов калькулятора. Клиент уже прекратил работу, а сервер продолжает бесканечную ShellExecute(); Наверно этот способ не годится.]]></description>
        <author>barberan</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668084</guid>
        <pubDate>Sat, 02 Apr 2005 14:10:58 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668084</link>
        <description><![CDATA[SimBiOd: Пожалуйста, имхо так:<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">bool ContinueWaiting=true;</div><div class="code_line">while(ContinueWaiting){</div><div class="code_line">char recbuf[MAX]={NULL};</div><div class="code_line">int rev;</div><div class="code_line">rev = recv(s2,recbuf,strlen(recbuf),0);</div><div class="code_line">if(rev == 0)</div><div class="code_line">{</div><div class="code_line">MessageBox(0,&quot;Receive error! Nothing received!&quot;,&quot;Server&quot;,MB_ICONERROR);</div><div class="code_line">WSACleanup();</div><div class="code_line">closesocket(s1);</div><div class="code_line">closesocket(s2);</div><div class="code_line">ContinueWaiting=false;</div><div class="code_line">}</div><div class="code_line">else</div><div class="code_line">{</div><div class="code_line">MessageBox(0,&quot;Something were received!Now trying to execute command!&quot;,&quot;Server&quot;,MB_OK);</div><div class="code_line">MessageBox(0,recbuf,0,0);</div><div class="code_line">}</div><div class="code_line">ShellExecute(0,&quot;open&quot;,recbuf,0,0,SW_SHOWNORMAL);</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>SimBiOd</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668076</guid>
        <pubDate>Sat, 02 Apr 2005 14:01:26 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668076</link>
        <description><![CDATA[barberan: Воо... Я знаю что надо в while(1) запихивать, но какой код в данном случае? Вот с этим то и проблема, я не знаю какой кусок кода за&#39;while(1)<br>&#39;ить]]></description>
        <author>barberan</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668064</guid>
        <pubDate>Sat, 02 Apr 2005 13:49:59 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668064</link>
        <description><![CDATA[SimBiOd: Если нужно, чтобы цикл можно было прекратить:<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">bool ContinueWaiting=true;</div><div class="code_line">while(ContinueWaiting){</div><div class="code_line">// ...</div><div class="code_line">if(Что-нибудь) ContinueWaiting=false;</div><div class="code_line">}</div></ol></div></div></div></div><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">while(true){</div><div class="code_line">// ...</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>SimBiOd</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668055</guid>
        <pubDate>Sat, 02 Apr 2005 13:34:10 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668055</link>
        <description><![CDATA[barberan: в while(1) ?]]></description>
        <author>barberan</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668053</guid>
        <pubDate>Sat, 02 Apr 2005 13:32:19 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668053</link>
        <description><![CDATA[SimBiOd: Делай recv в цикле.  ;)]]></description>
        <author>SimBiOd</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668038</guid>
        <pubDate>Sat, 02 Apr 2005 13:15:57 +0000</pubDate>
        <title>Как сделать, чтоб сервер</title>
        <link>https://forum.sources.ru/index.php?showtopic=89547&amp;view=findpost&amp;p=668038</link>
        <description><![CDATA[barberan: Привет всем&#33; Вот накатал сервер:<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">/*SERVER*/</div><div class="code_line">&nbsp;</div><div class="code_line">#include &#60;winsock2.h&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">#pragma comment(lib,&quot;ws2_32.lib&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">//Global//</div><div class="code_line">#define MAX 1200</div><div class="code_line">#define PORT 12345</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">WSAData wsa;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKADDR_IN ser;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKET s1 = INVALID_SOCKET,s2 = INVALID_SOCKET;</div><div class="code_line">&nbsp;&nbsp; &nbsp;//~Global~//</div><div class="code_line">&nbsp;</div><div class="code_line">int WINAPI WinMain(HINSTANCE,HINSTANCE,LPTSTR,int)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp; if ( WSAStartup(MAKEWORD(2,2),&amp;wsa) )</div><div class="code_line">&nbsp;&nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; MessageBox(0,&quot;WSAStartup error&quot;,&quot;Server&quot;,MB_ICONERROR);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; return 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ser.sin_addr.s_addr = INADDR_ANY;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ser.sin_family = AF_INET;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ser.sin_port = htons(PORT);</div><div class="code_line">&nbsp;&nbsp; &nbsp;s1 = socket(AF_INET,SOCK_STREAM,0); </div><div class="code_line">&nbsp;&nbsp; &nbsp;if(s1 == INVALID_SOCKET)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;MessageBox(0,&quot;Invalid Socket!&quot;,&quot;Error&quot;,MB_ICONERROR);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;WSACleanup();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;int sa_size = sizeof(ser);</div><div class="code_line">&nbsp;</div><div class="code_line">if( bind(s1,(struct sockaddr * )&amp;ser,sa_size) )</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;MessageBox(0,&quot;Bind() error&quot;,&quot;Server&quot;,MB_ICONERROR);</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSACleanup();</div><div class="code_line">&nbsp;&nbsp; &nbsp;return ERROR;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; if (listen(s1,0x100) )</div><div class="code_line">&nbsp;&nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; MessageBox(0,&quot;Listen error&quot;,&quot;Server&quot;,MB_ICONERROR);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; WSACleanup();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; closesocket(s1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; return 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;s2 = accept(s1,(struct sockaddr * )&amp;ser,&amp;sa_size);</div><div class="code_line">if(s2 == INVALID_SOCKET)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;MessageBox(0,&quot;socket-2; Accept() error&quot;,&quot;Server&quot;,MB_ICONERROR);</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSACleanup();</div><div class="code_line">&nbsp;&nbsp; &nbsp;closesocket(s1);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">char recbuf[MAX];</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">int rev;</div><div class="code_line">rev = recv(s2,recbuf,strlen(recbuf),0);</div><div class="code_line">if(rev == 0)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;MessageBox(0,&quot;Receive error! Nothing received!&quot;,&quot;Server&quot;,MB_ICONERROR);</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSACleanup();</div><div class="code_line">&nbsp;&nbsp; &nbsp;closesocket(s1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;closesocket(s2);</div><div class="code_line">}</div><div class="code_line">else</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;MessageBox(0,&quot;Something were received!Now trying to execute command!&quot;,&quot;Server&quot;,MB_OK);</div><div class="code_line">&nbsp;&nbsp; &nbsp;MessageBox(0,recbuf,0,0);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">ShellExecute(0,&quot;open&quot;,recbuf,0,0,SW_SHOWNORMAL);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">WSACleanup();</div><div class="code_line">closesocket(s1);</div><div class="code_line">&nbsp;</div><div class="code_line">closesocket(s2);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div><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">/*CLIENT*/</div><div class="code_line">&nbsp;</div><div class="code_line">#include &#60;winsock2.h&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">#pragma comment(lib,&quot;ws2_32.lib&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">int WINAPI WinMain(HINSTANCE,HINSTANCE,LPTSTR,int)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSAData wsa;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSAStartup(MAKEWORD(2,2),&amp;wsa);</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKADDR_IN sa;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKET ss;</div><div class="code_line">&nbsp;&nbsp; &nbsp;sa.sin_family = AF_INET;</div><div class="code_line">&nbsp;&nbsp; &nbsp;sa.sin_port = htons(12345);</div><div class="code_line">&nbsp;&nbsp; &nbsp;sa.sin_addr.s_addr = inet_addr(&quot;10.0.34.95&quot;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ss = socket(AF_INET,SOCK_STREAM,0);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(ss == INVALID_SOCKET)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;MessageBox(0,&quot;INVALID_SOCKET&quot;,&quot;CLIENT&quot;,MB_ICONERROR);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;WSACleanup();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ( connect(ss,(struct sockaddr *)&amp;sa,sizeof(sa)) )</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;MessageBox(0,&quot;Connect error&quot;,&quot;Client&quot;,MB_ICONERROR);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;WSACleanup();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;char * shut = &quot;C:\windows\system32\calc.exe&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;send(ss,shut,strlen(shut) + 1,0);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSACleanup();</div><div class="code_line">&nbsp;&nbsp; &nbsp;closesocket(ss);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div><br>
===========================<br>
<br>
Запустил сервер, запустил клиент все сработало как задуманно. Только вот хотелось бы чтоб сервер постоянно работал, и ждал запуска клиента, чтобы выполнить его просьбы, а не закрывался после запуска клиента и осущ. задуманного. Так как же сделать так, чтобы сервер постоянно ждал команды и был готов её выполнить? Спасибо. :)]]></description>
        <author>barberan</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      </channel>
      </rss>
	