zoukankan      html  css  js  c++  java
  • 学习网络编程的十个步骤

     转载:http://www.cppblog.com/waterinfire/archive/2007/05/11/23904.html
     
    经过多年的网络编程实践之后,个人觉得初学网络编程者可以从以下几个步骤开展:

        1)下载一个可以互动的学习工具,通过这个与这个工具互动,我们可以及时的学到每个api的结果如果。我个人强烈推荐一个互动好工具,即python,下载地址http://www.python.org 对于有c/c++或java基础的朋友通过一两个礼拜的时间就可以上手了,另外个人建议初学者可以学习dive into python
           
        2)掌握网络编程中会用到的几个基本概念和内涵,比如IP地址,port号,socket等

        3)记住和消化网络编程C/S模型,把server和client端编程的常用模式理解和消化

        4)花几天时间学习socket api集,api集可以分为下面几大类:
           创建   socket bind listen accept
           收发   read/recv/recvfrom  write/send/sendto   
           关闭   close shutdown
           参数   getsockopt/setsockopt
           地址   gethostbyaddr getaddrbyhost,...

           在学习这些api时候,可以先关注在函数功能,参数意义上

        5)结合python互动平台,实践socket api的用法,比如socket函数怎么使用,bind怎么使用等等。在互动过程中,我们可以变换参数,看看调用结果如何。比如,
           创建一个tcp socket的语法如下:
           socket(AF_INET,SOCK_STREAM)

           创建一个udp socket的语法如下:
           socket(AF_INET,SOCK_DGRAM)

        6)学习socket server端编程实现简单规约比如echo,time等,然后通过cmd中的telnet来测试。

        7)学习I/O模型,比如阻塞、非阻塞和反应式(select,poll,WaitForMultipleObject)等

        8)学习Richard Stevens的《Unix网络编程》,深入学习其中的api原理以及服务端设计原理,并通过代码编写。

        9)下载高性能网络编程框架twisted,笔者强烈推荐,它将使你的网络编程效率提高10倍以上。

        10)学习设计模式、操作系统知识比如线程、进程、同步等。
  • 相关阅读:
    ngnix 配置反向代理
    tomcat nio
    spring boot 1
    mongodb 总结
    spring profile 多环境配置管理
    分布式锁实现
    2020真难
    NSRunLoopCommonModes和NSDefaultRunLoopMode区别(Timer)
    数据统计---埋点
    【问题汇总】iOS数据持久化
  • 原文地址:https://www.cnblogs.com/fuyanwen/p/3096866.html
Copyright © 2011-2022 走看看