<?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=413363&amp;view=findpost&amp;p=3776341</guid>
        <pubDate>Thu, 16 Aug 2018 13:27:14 +0000</pubDate>
        <title>Уроки по WinSock2 C++. Сетевое программирование.</title>
        <link>https://forum.sources.ru/index.php?showtopic=413363&amp;view=findpost&amp;p=3776341</link>
        <description><![CDATA[assembly: <strong class='tag-b'>Вышел 4 урок: </strong><a class='tag-url' href='https://www.youtube.com/watch?v=fS5K-x6w9zA' target='_blank'>Видео</a><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 &quot;stdafx.h&quot;</div><div class="code_line">#pragma comment(lib, &quot;ws2_32.lib&quot;)</div><div class="code_line">#include &#60;winsock2.h&#62;</div><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">#include &#60;string&#62;</div><div class="code_line">#define _WINSOCK_DEPRECATED_NO_WARNINGS</div><div class="code_line">#pragma warning(disable: 4996)</div><div class="code_line">&nbsp;</div><div class="code_line">SOCKET Connection;</div><div class="code_line">&nbsp;</div><div class="code_line">enum Packet {</div><div class="code_line">&nbsp;&nbsp; &nbsp;P_ChatMessage,</div><div class="code_line">&nbsp;&nbsp; &nbsp;P_Test</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">bool ProcessPacket(Packet packettype) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;switch(packettype) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;case P_ChatMessage:</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int msg_size;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;recv(Connection, (char*)&amp;msg_size, sizeof(int), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;char *msg = new char[msg_size + 1];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;msg[msg_size] = &#39;{text}&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;recv(Connection, msg, msg_size, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; msg &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;delete[] msg;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;case P_Test:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Test packet.\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp;default:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Unrecognized packet: &quot; &#60;&#60; packettype &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return true;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">void ClientHandler() {</div><div class="code_line">&nbsp;&nbsp; &nbsp;Packet packettype;</div><div class="code_line">&nbsp;&nbsp; &nbsp;while(true) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;recv(Connection, (char*)&amp;packettype, sizeof(Packet), NULL);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if(!ProcessPacket(packettype)) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;closesocket(Connection);</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">&nbsp;&nbsp; &nbsp;//WSAStartup</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSAData wsaData;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WORD DLLVersion = MAKEWORD(2, 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(WSAStartup(DLLVersion, &amp;wsaData) != 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error&quot; &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;exit(1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKADDR_IN addr;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int sizeofaddr = sizeof(addr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_addr.s_addr = inet_addr(&quot;127.0.0.1&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_port = htons(1111);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_family = AF_INET;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Connection = socket(AF_INET, SOCK_STREAM, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(connect(Connection, (SOCKADDR*)&amp;addr, sizeof(addr)) != 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error: failed connect to server.\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::cout &#60;&#60; &quot;Connected!\n&quot;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)ClientHandler, NULL, NULL, NULL);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::string msg1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;while(true) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::getline(std::cin, msg1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int msg_size = msg1.size();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Packet packettype = P_ChatMessage;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;send(Connection, (char*)&amp;packettype, sizeof(Packet), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;send(Connection, (char*)&amp;msg_size, sizeof(int), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;send(Connection, msg1.c_str(), msg_size, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Sleep(10);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;system(&quot;pause&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</div><div class="code_line">}</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">#include &quot;stdafx.h&quot;</div><div class="code_line">#pragma comment(lib, &quot;ws2_32.lib&quot;)</div><div class="code_line">#include &#60;winsock2.h&#62;</div><div class="code_line">#define _WINSOCK_DEPRECATED_NO_WARNINGS</div><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">#pragma warning(disable: 4996)</div><div class="code_line">&nbsp;</div><div class="code_line">SOCKET Connections[100];</div><div class="code_line">int Counter = 0;</div><div class="code_line">&nbsp;</div><div class="code_line">enum Packet {</div><div class="code_line">&nbsp;&nbsp; &nbsp;P_ChatMessage,</div><div class="code_line">&nbsp;&nbsp; &nbsp;P_Test</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">bool ProcessPacket(int index, Packet packettype) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;switch(packettype) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;case P_ChatMessage:</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int msg_size;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;recv(Connections[index], (char*)&amp;msg_size, sizeof(int), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;char *msg = new char[msg_size + 1];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;msg[msg_size] = &#39;{text}&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;recv(Connections[index], msg, msg_size, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for(int i = 0; i &#60; Counter; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(i == index) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;continue;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Packet msgtype = P_ChatMessage;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;send(Connections[i], (char*)&amp;msgtype, sizeof(Packet), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;send(Connections[i], (char*)&amp;msg_size, sizeof(int), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;send(Connections[i], msg, msg_size, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;delete[] msg;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;default:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Unrecognized packet: &quot; &#60;&#60; packettype &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return true;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">void ClientHandler(int index) { </div><div class="code_line">&nbsp;&nbsp; &nbsp;Packet packettype;</div><div class="code_line">&nbsp;&nbsp; &nbsp;while(true) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;recv(Connections[index], (char*)&amp;packettype, sizeof(Packet), NULL);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if(!ProcessPacket(index, packettype)) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;closesocket(Connections[index]);</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">&nbsp;&nbsp; &nbsp;//WSAStartup</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSAData wsaData;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WORD DLLVersion = MAKEWORD(2, 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(WSAStartup(DLLVersion, &amp;wsaData) != 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error&quot; &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;exit(1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKADDR_IN addr;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int sizeofaddr = sizeof(addr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_addr.s_addr = inet_addr(&quot;127.0.0.1&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_port = htons(1111);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_family = AF_INET;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKET sListen = socket(AF_INET, SOCK_STREAM, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp;bind(sListen, (SOCKADDR*)&amp;addr, sizeof(addr));</div><div class="code_line">&nbsp;&nbsp; &nbsp;listen(sListen, SOMAXCONN);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKET newConnection;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for(int i = 0; i &#60; 100; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;newConnection = accept(sListen, (SOCKADDR*)&amp;addr, &amp;sizeofaddr);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if(newConnection == 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error #2\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;} else {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Client Connected!\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;std::string msg = &quot;Hello. It`s my first network program!&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int msg_size = msg.size();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Packet msgtype = P_ChatMessage;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;send(newConnection, (char*)&amp;msgtype, sizeof(Packet), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;send(newConnection, (char*)&amp;msg_size, sizeof(int), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;send(newConnection, msg.c_str(), msg_size, NULL);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Connections[i] = newConnection;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Counter++;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)ClientHandler, (LPVOID)(i), NULL, NULL);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Packet testpacket = P_Test;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;send(newConnection, (char*)&amp;testpacket, sizeof(Packet), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</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;system(&quot;pause&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>assembly</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=413363&amp;view=findpost&amp;p=3776096</guid>
        <pubDate>Sun, 12 Aug 2018 10:54:28 +0000</pubDate>
        <title>Уроки по WinSock2 C++. Сетевое программирование.</title>
        <link>https://forum.sources.ru/index.php?showtopic=413363&amp;view=findpost&amp;p=3776096</link>
        <description><![CDATA[assembly: <strong class='tag-b'>Вышел 3 урок:</strong> <a class='tag-url' href='https://www.youtube.com/watch?v=Zk1L8U6bt10' target='_blank'>Видео</a><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 &quot;stdafx.h&quot;</div><div class="code_line">#pragma comment(lib, &quot;ws2_32.lib&quot;)</div><div class="code_line">#include &#60;winsock2.h&#62;</div><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">#include &#60;string&#62;</div><div class="code_line">#pragma warning(disable: 4996)</div><div class="code_line">&nbsp;</div><div class="code_line">SOCKET Connection;</div><div class="code_line">&nbsp;</div><div class="code_line">void ClientHandler() {</div><div class="code_line">&nbsp;&nbsp; &nbsp;int msg_size;</div><div class="code_line">&nbsp;&nbsp; &nbsp;while(true) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;recv(Connection, (char*)&amp;msg_size, sizeof(int), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;char *msg = new char[msg_size + 1];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;msg[msg_size] = &#39;{text}&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;recv(Connection, msg, msg_size, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; msg &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;delete[] msg;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</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">&nbsp;&nbsp; &nbsp;//WSAStartup</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSAData wsaData;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WORD DLLVersion = MAKEWORD(2, 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(WSAStartup(DLLVersion, &amp;wsaData) != 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error&quot; &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;exit(1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKADDR_IN addr;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int sizeofaddr = sizeof(addr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_addr.s_addr = inet_addr(&quot;127.0.0.1&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_port = htons(1111);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_family = AF_INET;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Connection = socket(AF_INET, SOCK_STREAM, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(connect(Connection, (SOCKADDR*)&amp;addr, sizeof(addr)) != 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error: failed connect to server.\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::cout &#60;&#60; &quot;Connected!\n&quot;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)ClientHandler, NULL, NULL, NULL);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::string msg1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;while(true) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::getline(std::cin, msg1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int msg_size = msg1.size();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;send(Connection, (char*)&amp;msg_size, sizeof(int), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;send(Connection, msg1.c_str(), msg_size, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Sleep(10);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;system(&quot;pause&quot;);</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">#include &quot;stdafx.h&quot;</div><div class="code_line">#pragma comment(lib, &quot;ws2_32.lib&quot;)</div><div class="code_line">#include &#60;winsock2.h&#62;</div><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">#pragma warning(disable: 4996)</div><div class="code_line">&nbsp;</div><div class="code_line">SOCKET Connections[100];</div><div class="code_line">int Counter = 0;</div><div class="code_line">&nbsp;</div><div class="code_line">void ClientHandler(int index) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;int msg_size;</div><div class="code_line">&nbsp;&nbsp; &nbsp;while(true) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;recv(Connections[index], (char*)&amp;msg_size, sizeof(int), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;char *msg = new char[msg_size + 1];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;msg[msg_size] = &#39;{text}&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;recv(Connections[index], msg, msg_size, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for(int i = 0; i &#60; Counter; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(i == index) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;continue;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;send(Connections[i], (char*)&amp;msg_size, sizeof(int), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;send(Connections[i], msg, msg_size, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;delete[] msg;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</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">&nbsp;&nbsp; &nbsp;//WSAStartup</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSAData wsaData;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WORD DLLVersion = MAKEWORD(2, 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(WSAStartup(DLLVersion, &amp;wsaData) != 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error&quot; &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;exit(1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKADDR_IN addr;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int sizeofaddr = sizeof(addr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_addr.s_addr = inet_addr(&quot;127.0.0.1&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_port = htons(1111);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_family = AF_INET;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKET sListen = socket(AF_INET, SOCK_STREAM, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp;bind(sListen, (SOCKADDR*)&amp;addr, sizeof(addr));</div><div class="code_line">&nbsp;&nbsp; &nbsp;listen(sListen, SOMAXCONN);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKET newConnection;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for(int i = 0; i &#60; 100; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;newConnection = accept(sListen, (SOCKADDR*)&amp;addr, &amp;sizeofaddr);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if(newConnection == 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error #2\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;} else {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Client Connected!\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;std::string msg = &quot;Hello. It`s my first network program!&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int msg_size = msg.size();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;send(newConnection, (char*)&amp;msg_size, sizeof(int), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;send(newConnection, msg.c_str(), msg_size, NULL);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Connections[i] = newConnection;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Counter++;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)ClientHandler, (LPVOID)(i), NULL, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</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;system(&quot;pause&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>assembly</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=413363&amp;view=findpost&amp;p=3775900</guid>
        <pubDate>Wed, 08 Aug 2018 16:34:18 +0000</pubDate>
        <title>Уроки по WinSock2 C++. Сетевое программирование.</title>
        <link>https://forum.sources.ru/index.php?showtopic=413363&amp;view=findpost&amp;p=3775900</link>
        <description><![CDATA[assembly: <strong class='tag-b'>Вышел 2 урок:</strong> <a class='tag-url' href='https://www.youtube.com/watch?v=OjU2HHT2kY0' target='_blank'>Видео</a><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 &quot;stdafx.h&quot;</div><div class="code_line">#pragma comment(lib, &quot;ws2_32.lib&quot;)</div><div class="code_line">#include &#60;winsock2.h&#62;</div><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">#pragma warning(disable: 4996)</div><div class="code_line">&nbsp;</div><div class="code_line">SOCKET Connections[100];</div><div class="code_line">int Counter = 0;</div><div class="code_line">&nbsp;</div><div class="code_line">void ClientHandler(int index) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;char msg[256];</div><div class="code_line">&nbsp;&nbsp; &nbsp;while(true) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;recv(Connections[index], msg, sizeof(msg), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for(int i = 0; i &#60; Counter; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(i == index) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;continue;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;send(Connections[i], msg, sizeof(msg), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</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">&nbsp;&nbsp; &nbsp;//WSAStartup</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSAData wsaData;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WORD DLLVersion = MAKEWORD(2, 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(WSAStartup(DLLVersion, &amp;wsaData) != 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error&quot; &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;exit(1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKADDR_IN addr;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int sizeofaddr = sizeof(addr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_addr.s_addr = inet_addr(&quot;127.0.0.1&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_port = htons(1111);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_family = AF_INET;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKET sListen = socket(AF_INET, SOCK_STREAM, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp;bind(sListen, (SOCKADDR*)&amp;addr, sizeof(addr));</div><div class="code_line">&nbsp;&nbsp; &nbsp;listen(sListen, SOMAXCONN);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKET newConnection;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for(int i = 0; i &#60; 100; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;newConnection = accept(sListen, (SOCKADDR*)&amp;addr, &amp;sizeofaddr);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if(newConnection == 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error #2\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;} else {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Client Connected!\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;char msg[256] = &quot;Hello. It`s my first network program!&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;send(newConnection, msg, sizeof(msg), NULL);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Connections[i] = newConnection;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Counter++;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)ClientHandler, (LPVOID)(i), NULL, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</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;system(&quot;pause&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</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">#include &quot;stdafx.h&quot;</div><div class="code_line">#pragma comment(lib, &quot;ws2_32.lib&quot;)</div><div class="code_line">#include &#60;winsock2.h&#62;</div><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">#pragma warning(disable: 4996)</div><div class="code_line">&nbsp;</div><div class="code_line">SOCKET Connection;</div><div class="code_line">&nbsp;</div><div class="code_line">void ClientHandler() {</div><div class="code_line">&nbsp;&nbsp; &nbsp;char msg[256];</div><div class="code_line">&nbsp;&nbsp; &nbsp;while(true) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;recv(Connection, msg, sizeof(msg), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; msg &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</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">&nbsp;&nbsp; &nbsp;//WSAStartup</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSAData wsaData;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WORD DLLVersion = MAKEWORD(2, 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(WSAStartup(DLLVersion, &amp;wsaData) != 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error&quot; &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;exit(1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKADDR_IN addr;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int sizeofaddr = sizeof(addr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_addr.s_addr = inet_addr(&quot;127.0.0.1&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_port = htons(1111);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_family = AF_INET;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Connection = socket(AF_INET, SOCK_STREAM, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(connect(Connection, (SOCKADDR*)&amp;addr, sizeof(addr)) != 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error: failed connect to server.\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::cout &#60;&#60; &quot;Connected!\n&quot;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)ClientHandler, NULL, NULL, NULL);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;char msg1[256];</div><div class="code_line">&nbsp;&nbsp; &nbsp;while(true) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cin.getline(msg1, sizeof(msg1));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;send(Connection, msg1, sizeof(msg1), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Sleep(10);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;system(&quot;pause&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>assembly</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=413363&amp;view=findpost&amp;p=3775750</guid>
        <pubDate>Mon, 06 Aug 2018 17:54:54 +0000</pubDate>
        <title>Уроки по WinSock2 C++. Сетевое программирование.</title>
        <link>https://forum.sources.ru/index.php?showtopic=413363&amp;view=findpost&amp;p=3775750</link>
        <description><![CDATA[assembly: Всем привет, решил записать небольшую серию уроков по WinSock в С++.<br>
<br>
<strong class='tag-b'>Урок #1. Написание простейшего клиент-серверного приложения</strong> (<a class='tag-url' href='https://www.youtube.com/watch?v=CRFNbq2pBxM' target='_blank'>видео</a>)<br>
<br>
Исходный код:<br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><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">// ClientC.cpp - код клиентской части</div><div class="code_line">//</div><div class="code_line">#include &quot;stdafx.h&quot;</div><div class="code_line">#pragma comment(lib, &quot;ws2_32.lib&quot;)</div><div class="code_line">#include &#60;winsock2.h&#62;</div><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">#pragma warning(disable: 4996)</div><div class="code_line">&nbsp;</div><div class="code_line">int main(int argc, char* argv[]) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;//WSAStartup</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSAData wsaData;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WORD DLLVersion = MAKEWORD(2, 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(WSAStartup(DLLVersion, &amp;wsaData) != 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error&quot; &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;exit(1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKADDR_IN addr;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int sizeofaddr = sizeof(addr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_addr.s_addr = inet_addr(&quot;127.0.0.1&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_port = htons(1111);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_family = AF_INET;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKET Connection = socket(AF_INET, SOCK_STREAM, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(connect(Connection, (SOCKADDR*)&amp;addr, sizeof(addr)) != 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error: failed connect to server.\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::cout &#60;&#60; &quot;Connected!\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;char msg[256];</div><div class="code_line">&nbsp;&nbsp; &nbsp;recv(Connection, msg, sizeof(msg), NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp;std::cout &#60;&#60; msg &#60;&#60; std::endl;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;system(&quot;pause&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</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">//</div><div class="code_line">// ServerS.cpp - код серверной части</div><div class="code_line">//</div><div class="code_line">#include &quot;stdafx.h&quot;</div><div class="code_line">#pragma comment(lib, &quot;ws2_32.lib&quot;)</div><div class="code_line">#include &#60;winsock2.h&#62;</div><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">#pragma warning(disable: 4996)</div><div class="code_line">&nbsp;</div><div class="code_line">int main(int argc, char* argv[]) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;//WSAStartup</div><div class="code_line">&nbsp;&nbsp; &nbsp;WSAData wsaData;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WORD DLLVersion = MAKEWORD(2, 1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(WSAStartup(DLLVersion, &amp;wsaData) != 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error&quot; &#60;&#60; std::endl;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;exit(1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKADDR_IN addr;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int sizeofaddr = sizeof(addr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_addr.s_addr = inet_addr(&quot;127.0.0.1&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_port = htons(1111);</div><div class="code_line">&nbsp;&nbsp; &nbsp;addr.sin_family = AF_INET;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKET sListen = socket(AF_INET, SOCK_STREAM, NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp;bind(sListen, (SOCKADDR*)&amp;addr, sizeof(addr));</div><div class="code_line">&nbsp;&nbsp; &nbsp;listen(sListen, SOMAXCONN);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SOCKET newConnection;</div><div class="code_line">&nbsp;&nbsp; &nbsp;newConnection = accept(sListen, (SOCKADDR*)&amp;addr, &amp;sizeofaddr);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(newConnection == 0) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Error #2\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;} else {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;std::cout &#60;&#60; &quot;Client Connected!\n&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;char msg[256] = &quot;Hello. It`s my first network program!&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;send(newConnection, msg, sizeof(msg), NULL);</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;system(&quot;pause&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div></div></div>]]></description>
        <author>assembly</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      </channel>
      </rss>
	