Learning Network Programming

xuanbao · · 471 次点击    
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
<p>I am trying to wrap my head around networking programming and creating server/client applications, and I thought that this would be a good opportunity to simultaneously test out and see what Go is all about. However, since I am new to network programming, I am in dire need of some resources. I found <a href="https://jan.newmarch.name/go/">this online book</a>, however, it covers Go 1 and seems like it may be a bit outdated. Can you help me gather some resources for studying and learning about network programming with Go?</p> <p>Thanks for the help.</p> <hr/>**评论:**<br/><br/>pmjtoca: <pre><p>I would recommend this book : &#39;TCP/IP illustrated volume1 the protocols&#39; by K.R.Fall and W. Richard Stevens (the best for me for many years). The Jan Newmarch ebook is still (Go whatever version) an excellent and clear introduction, with Go. And do go through the Golang standard library and visit/study the source code within (plenty of trips and tricks there). On github, study <a href="https://github.com/go-kit/kit">https://github.com/go-kit/kit</a>... and you will have gathered a robust base about networking.</p></pre>skarlso: <pre><p>Second that. Learn networking, then read the doc of <a href="https://golang.org/pkg/net/" rel="nofollow">Go Net Package</a>. </p></pre>dhdfdh: <pre><p>If you really want to learn network programming, you should do it in C with <a href="https://books.google.com/books/about/UNIX_Network_Programming.html?id=ptSC4LpwGA0C&amp;source=kp_cover&amp;hl=en" rel="nofollow">this book</a> at your side. </p></pre>earthboundkid: <pre><p>Why use C? C&#39;s problems with buffer overflows etc seem to me to add a lot of noise over and above learning networking. </p></pre>dhdfdh: <pre><p>Buffer overflow is not a C problem. That&#39;s what the programmer is to attend to. </p> <p>By using C, you are at the bit level and full control over everything. You have a deeper view and insight. While this can possibly be done with Go, it seems, from his question, he may be too far away from the nuts and bolts of networking.</p></pre>earthboundkid: <pre><blockquote> <p>Buffer overflow is not a C problem.</p> </blockquote> <p>??? Only under very tedious readings of &#34;C&#34; and &#34;problem&#34; can one make that statement true. Yes, in the end, complexity has to get pushed somewhere and it&#39;s the job of the programmer to know how to deal with things, etc. etc., buuuutttt… Go makes it much easier to not accidentally get haXXed by bad buffer management.</p> <blockquote> <p>you are at the bit level and full control over everything.</p> </blockquote> <p>But for networking the bit level <em>in memory</em> doesn&#39;t matter, only the bit level <em>on the wire</em> does, which Go gives you just as much control over as anything else.</p></pre>dhdfdh: <pre><p>Yes. As I said.</p></pre>Fwippy: <pre><p>I don&#39;t think they actually want to learn network programming - they just want to create applications that communicate over a network. They don&#39;t need to know all the details of the 7 layer OSI model, they just need enough basics to get up and running.</p></pre>dhdfdh: <pre><p>Then they should state that.</p></pre>

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

471 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传