<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Tools to rock on Network Programming.</title><link>https://community.element14.com/products/devtools/technicallibrary/w/documents/9732/tools-to-rock-on-network-programming</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Tools to rock on Network Programming.</title><link>https://community.element14.com/products/devtools/technicallibrary/w/documents/9732/tools-to-rock-on-network-programming</link><pubDate>Fri, 08 Oct 2021 04:50:46 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:d491c644-fbcb-43c5-9399-92c186958b2c</guid><dc:creator>DebuggerGuys</dc:creator><comments>https://community.element14.com/products/devtools/technicallibrary/w/documents/9732/tools-to-rock-on-network-programming#comments</comments><description>Current Revision posted to Documents by DebuggerGuys on 10/8/2021 4:50:46 AM&lt;br /&gt;
&lt;table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width:100%;border:1px solid #f0ffff;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th align="center" style="border:1px solid black;border:1px solid #f0ffff;background-color:#6690bc;" valign="middle"&gt;&lt;span style="color:#ffffff;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;th align="center" style="border:1px solid black;border:1px solid #f0ffff;background-color:#6690bc;" valign="middle"&gt;&lt;span style="color:#ffffff;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #f0ffff;"&gt;&lt;a href="http://h30507.www3.hp.com/t5/image/serverpage/image-id/7011i24E2979B8D2DF761/image-size/original?v=mpbl-1&amp;amp;px=-1"&gt;&lt;img alt="image" class="jiveImage" src="http://h30507.www3.hp.com/t5/image/serverpage/image-id/7011i24E2979B8D2DF761/image-size/original?v=mpbl-1&amp;amp;px=-1"  /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="border:1px solid black;border:1px solid #f0ffff;text-align:justify;"&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;font-family:verdana, geneva;"&gt;Creating a multiplayer game can be a lot of fun, but navigating the complexities of IP network programming can be a headache.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;font-family:verdana, geneva;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;font-family:verdana, geneva;"&gt;That&amp;#39;s kind of a strange statement, but the two go hand in hand. You can&amp;#39;t write a multiplayer game without some sort of network-based communications, and game-related network programming introduces difficulties not often found with more simple applications. For example, most game developers are concerned with bandwidth utilization and throttling. There&amp;#39;s also player session management to contend with.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;font-family:verdana, geneva;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-size:12pt;font-family:verdana, geneva;"&gt; Then, there&amp;#39;s the problem of message fragmentation, acknowledgement and sequencing. Oh, and you&amp;#39;d really like to be able to make your game run on both Linux and Windows. That&amp;#39;s a tall order for developers who probably are more concerned with writing their games than they are in becoming experts in cross-platform network programming. Fortunately, the &lt;a class="jive-link-external-small" href="http://www.enet.com/home.html" rel="nofollow ugc noopener" target="_blank"&gt;ENet&lt;/a&gt; &lt;a class="jive-link-external-small" href="http://enet.bespin.org" rel="nofollow ugc noopener" target="_blank"&gt;library&lt;/a&gt; takes care of these details and presents developers with a simple, flexible and consistent API. &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:verdana, geneva;font-size:12pt;text-align:justify;"&gt;ENet&amp;#39;s event-driven programming model makes client session management very simple. The library dispatches an event when a peer connects or disconnects, and when a message is received from a peer. The developer simply writes event handlers that take care of initializing and deallocating resources, and acting upon incoming messages. This means you don&amp;#39;t have to worry about the complexities of forking, preforking, threading or nonblocking calls to connect() and accept() in order to handle multiple connections. With ENet, all you do is make periodic calls to its event dispatcher and handle the events as they come in. &lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;text-align:justify;"&gt;&lt;span style="font-size:12pt;font-family:verdana, geneva;"&gt;ENet&amp;#39;s event-driven programming model makes client session management very simple and provides for both reliable and unreliable transmission. Find out some more interesting features ENet provides &lt;a class="jive-link-external-small" href="http://www.linuxjournal.com/content/network-programming-enet" rel="nofollow ugc noopener" target="_blank"&gt;here!&lt;/a&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;text-align:justify;"&gt;&lt;span style="font-size:12pt;font-family:verdana, geneva;"&gt;Keep looking interesting info with &lt;a class="jive-link-external-small" href="https://twitter.com/#!/DebuggerGuys" rel="nofollow ugc noopener" target="_blank"&gt;DebuggerGuys&lt;/a&gt;!&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: multiplayer, network, programming, game, ip, enet, network.&lt;/div&gt;
</description></item></channel></rss>