﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-no_rain-文章分类-网络编程</title><link>http://www.cppblog.com/nxm1990/category/18154.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 30 Nov 2011 08:27:08 GMT</lastBuildDate><pubDate>Wed, 30 Nov 2011 08:27:08 GMT</pubDate><ttl>60</ttl><item><title>网络编程的各种模式</title><link>http://www.cppblog.com/nxm1990/articles/161150.html</link><dc:creator>is-programmer</dc:creator><author>is-programmer</author><pubDate>Tue, 29 Nov 2011 07:37:00 GMT</pubDate><guid>http://www.cppblog.com/nxm1990/articles/161150.html</guid><wfw:comment>http://www.cppblog.com/nxm1990/comments/161150.html</wfw:comment><comments>http://www.cppblog.com/nxm1990/articles/161150.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/nxm1990/comments/commentRss/161150.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/nxm1990/services/trackbacks/161150.html</trackback:ping><description><![CDATA[<div><a href="http://www.wangafu.net/~nickm/libevent-book/01_intro.html">网络编程的各种模式</a></div><img src ="http://www.cppblog.com/nxm1990/aggbug/161150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/nxm1990/" target="_blank">is-programmer</a> 2011-11-29 15:37 <a href="http://www.cppblog.com/nxm1990/articles/161150.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网络编程的小实验（一）</title><link>http://www.cppblog.com/nxm1990/articles/161092.html</link><dc:creator>is-programmer</dc:creator><author>is-programmer</author><pubDate>Mon, 28 Nov 2011 15:17:00 GMT</pubDate><guid>http://www.cppblog.com/nxm1990/articles/161092.html</guid><wfw:comment>http://www.cppblog.com/nxm1990/comments/161092.html</wfw:comment><comments>http://www.cppblog.com/nxm1990/articles/161092.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/nxm1990/comments/commentRss/161092.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/nxm1990/services/trackbacks/161092.html</trackback:ping><description><![CDATA[在没有链接的情况下调用getpeername<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdlib.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">unistd.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">sys</span><span style="color: #000000; ">/</span><span style="color: #000000; ">socket.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">netinet</span><span style="color: #000000; ">/</span><span style="color: #0000FF; ">in</span><span style="color: #000000; ">.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;MAXLINE&nbsp;80</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;SERV_PORT&nbsp;8000</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main(){<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;servsock;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">((servsock&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;socket(AF_INET,SOCK_STREAM,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">))&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">){<br />&nbsp;&nbsp;&nbsp;&nbsp;perror(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">socket</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; ">&nbsp;sockaddr_in&nbsp;peer;<br />&nbsp;&nbsp;memset(</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">peer,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(peer));<br />&nbsp;&nbsp;socklen_t&nbsp;peerlen&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(peer);<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;ret;<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">((ret&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;getpeername(servsock,(</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; ">&nbsp;sockaddr</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">peer,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">peerlen))&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">){<br />&nbsp;&nbsp;&nbsp;&nbsp;perror(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">getpeername</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;meg[</span><span style="color: #000000; ">100</span><span style="color: #000000; ">];<br />&nbsp;&nbsp;inet_ntop(AF_INET,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">peer,meg,peerlen);<br />&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%s\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,meg);<br />}<br /></span></div>结果：<span class="Apple-style-span" style="font-size: 13px; background-color: #eeeeee; "><span style="color: #000000; ">getpeername:&nbsp;Transport&nbsp;endpoint&nbsp;</span><span style="color: #0000FF; ">is</span><span style="color: #000000; ">&nbsp;not&nbsp;connected</span></span><img src ="http://www.cppblog.com/nxm1990/aggbug/161092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/nxm1990/" target="_blank">is-programmer</a> 2011-11-28 23:17 <a href="http://www.cppblog.com/nxm1990/articles/161092.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TCP链接的思考</title><link>http://www.cppblog.com/nxm1990/articles/160029.html</link><dc:creator>is-programmer</dc:creator><author>is-programmer</author><pubDate>Sun, 13 Nov 2011 08:39:00 GMT</pubDate><guid>http://www.cppblog.com/nxm1990/articles/160029.html</guid><wfw:comment>http://www.cppblog.com/nxm1990/comments/160029.html</wfw:comment><comments>http://www.cppblog.com/nxm1990/articles/160029.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/nxm1990/comments/commentRss/160029.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/nxm1990/services/trackbacks/160029.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 15px; line-height: 18px; ">学过 TCP/IP 协议，理解三路握手的同学明白，TCP 连接是虚拟的连接，不是电路连接，维持 TCP 连接理论上不占用网络资源（会占用两头程序的系统资源）。只要连接的双方认为 TCP 连接存在，并且可以互相发送 IP packet，那么 TCP 连接就一直存在。<br /></span><span class="Apple-style-span" style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 15px; line-height: 18px; ">单独谈论&#8220;TCP 并发连接数&#8221;是没有意义的，因为连接数基本上是要多少有多少。更有意义的性能指标或许是：&#8220;每秒钟收发多少条消息&#8221;、&#8220;每秒钟收发多少字节的数据&#8221;、&#8220;支持多少个活动的并发客户&#8221;等等。<br /></span><a href="http://www.cnblogs.com/Solstice/archive/2011/07/01/2095411.html">链接</a><img src ="http://www.cppblog.com/nxm1990/aggbug/160029.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/nxm1990/" target="_blank">is-programmer</a> 2011-11-13 16:39 <a href="http://www.cppblog.com/nxm1990/articles/160029.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些大牛写的文章（in my opinion)</title><link>http://www.cppblog.com/nxm1990/articles/160008.html</link><dc:creator>is-programmer</dc:creator><author>is-programmer</author><pubDate>Sat, 12 Nov 2011 16:47:00 GMT</pubDate><guid>http://www.cppblog.com/nxm1990/articles/160008.html</guid><wfw:comment>http://www.cppblog.com/nxm1990/comments/160008.html</wfw:comment><comments>http://www.cppblog.com/nxm1990/articles/160008.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/nxm1990/comments/commentRss/160008.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/nxm1990/services/trackbacks/160008.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="color: #333333; line-height: 20px; background-color: #ffffff; font-family: Courier; font-size: 10pt; ">都是一些比我有学识的人的观点和一些库的链接<br /></span><span class="Apple-style-span" style="color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff; "><h1 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="font-size: 10pt; "><a href="http://blog.csdn.net/solstice/article/details/5364096"><span style="font-family: Courier; font-size: 10pt; ">学之者生，用之者死&#8212;&#8212;ACE历史与简评</span><br /></a></span></h1></span><span class="Apple-style-span" style="font-family: 'Microsoft YaHei'; font-size: 20px; line-height: 30px; background-color: #ffffff; "><a href="http://blog.csdn.net/lantianye/article/details/3966731" title="给软件职场新手的话" style="color: #666666; text-decoration: none; "><span style="font-family: Courier; font-size: 10pt; ">给软件职场新手的话<br /></span></a></span><span class="Apple-style-span" style="color: #555753; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Verdana, 'Bitstream Vera Sans', sans-serif; line-height: 19px; background-color: #ffffff; "><h1 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: bold; font-style: inherit; font-size: 24px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Verdana, 'Bitstream Vera Sans', sans-serif; vertical-align: baseline; color: #555753; "><span style="font-size: 10pt; "><a href="http://getmangos.com/"><span style="font-family: Courier; font-size: 10pt; ">mangos &gt; the free, open source World of Warcraft server</span><br /></a></span></h1></span><span class="Apple-style-span" style="font-family: arial, verdana, sans-serif; line-height: 20px; background-color: #ffffff; "><h1 style="padding-top: 0.25em; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1em; font-size: 29px; background-color: transparent; color: #630000; "><span style="font-size: 10pt; "><a href="http://think-async.com/"><span style="font-family: Courier; font-size: 10pt; ">Asio C++ Library</span></a></span></h1></span><span class="Apple-style-span" style="color: #222222; font-family: arial, sans-serif; line-height: 15px; background-color: #ffffff; font-size: small; "><h3 class="r" style="font-size: medium; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: block; line-height: 1; overflow-x: hidden; overflow-y: hidden; text-overflow: ellipsis; white-space: nowrap; "><a href="http://www.google.com.hk/url?sa=t&amp;rct=j&amp;q=libevent&amp;source=web&amp;cd=1&amp;ved=0CDEQFjAA&amp;url=http%3A%2F%2Flibevent.org%2F&amp;ei=Y4q-TqqrLsKwiQfQ98yFBQ&amp;usg=AFQjCNEK9l290uyEMShBdMRsQkPdOEfK8Q" target="_blank" class="l" style="font-family: arial, sans-serif; color: #d14836; cursor: pointer; "><em style="color: #d14836; font-style: normal; text-decoration: underline; font-family: Courier; font-size: 10pt; ">libevent</em></a></h3></span><span class="Apple-style-span" style="color: #222222; font-family: arial, sans-serif; line-height: 15px; background-color: #ffffff; font-size: small; "><h3 class="r" style="font-size: medium; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; display: block; line-height: 1; overflow-x: hidden; overflow-y: hidden; text-overflow: ellipsis; white-space: nowrap; "><a href="http://www.google.com.hk/url?sa=t&amp;rct=j&amp;q=memcached&amp;source=web&amp;cd=1&amp;ved=0CDQQFjAA&amp;url=http%3A%2F%2Fmemcached.org%2F&amp;ei=x4i-TrjlOIiQiQfXpuzxBA&amp;usg=AFQjCNEEMDfA6L4gMMP-z9gOQ-F_Xxy8gA" target="_blank" class="l" style="font-family: arial, sans-serif; color: #d14836; cursor: pointer; "><em style="color: #d14836; font-style: normal; text-decoration: underline; font-family: Courier; font-size: 10pt; ">memcached</em>&nbsp;- a distributed memory object caching system</a></h3></span><span class="Apple-style-span" style="font-family: arial, verdana, sans-serif; line-height: 20px; background-color: #ffffff; "><h1 style="padding-top: 0.25em; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1em; font-size: 29px; background-color: transparent; color: #630000; "><span style="font-size: 10pt; "><a href="http://think-async.com/"></a></span></h1></span><span class="Apple-style-span" style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; background-color: #ffffff; "></span><span class="Apple-style-span" style="color: #333333; line-height: 20px; background-color: #ffffff; font-family: Courier; font-size: 10pt; ">--当你需要编写复杂多模式的大型系统时<br /></span><span class="Apple-style-span" style="color: #333333; line-height: 20px; background-color: #ffffff; font-family: Courier; font-size: 10pt; ">你就会对需要链接一堆小巧的,风格不一,甚至冲突的库而绝望了<br /></span><span class="Apple-style-span" style="color: #333333; line-height: 20px; background-color: #ffffff; font-family: Courier; font-size: 10pt; ">对于目的单一的小型系统,如memcached, ace绝对不适合<br /></span><img src ="http://www.cppblog.com/nxm1990/aggbug/160008.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/nxm1990/" target="_blank">is-programmer</a> 2011-11-13 00:47 <a href="http://www.cppblog.com/nxm1990/articles/160008.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>