想向linux方向的网络编程方面发展···请问应该具备什么知识啊?麻烦指点一下··
想向linux/unix方向的网络编程方面发展···请问应该具备什么知识啊?麻烦指点一下··
还有那个linux/unix方向的,分别包含嵌入式方面,网络方面,操作系统方面,手机方面,还有哪些方面会运用到lunux/unix编程呢?··或者我上面那样说的那些方面正确吗?
麻烦各位高手指点一下···先谢谢了哦···送分咯··
------解决方案--------------------看Richard Steven的 Unix网络编程 卷一卷二
如果想要深入,看Richard Stevens的 TCP/IP 详解 卷一二三
“还有那个linux/unix方向的,分别包含嵌入式方面,网络方面,操作系统方面,手机方面,还有哪些方面会运用到lunux/unix编程呢”
你指的是“会运用到linux/unix编程”,还是“会运用到linux/unix
网络编程”
不管怎么发展,网络都还是需要的,所以网络编程也是需要的。
当然上面你说的各个方面,Linux编程也是需要的,只要采用了Linux os,呵呵
------解决方案--------------------我不知道楼主是要做什么方面的网络编程,我是做C/C++网络游戏服务器开发的,我很看好LINUX下的服务器开发这个行业,相当有前途,不管是自己开发软件,还是帮别人开发,都是很吃香的。现在的各种分布式应用正在飞速发展,包括所谓的云计算,所谓的WEB服务。我强烈建议楼主往这方面发展!
从服务器编程方向上讲,应该了解TCP/IP协议族,多线程编程,同步方式,各种锁,锁无关的数据结构,SOCKET编程,各种算法,包括自平衡二叉树,红黑树,哈希等算法等,还有各种池化技术,包括线程池,连接池,WINDOWS下的内存池等。有需要可以选择性的学习原始套接字编程,其他协议,比如ICMP,ARP等。LINUX下的EPOLL你需要看看,还有SQL语言,各种数据库相关的接口你要了解。
具体到学习书籍建议,TCP/IP协议族 《TCP/IP详解 卷一:协议》
如果想做系统型的,也就是改进操作系统,或者写驱动之类的 ,可以再看 《TCP/IP详解 卷二:实现》
多线程编程可以看 《多处理器编程的艺术》,里面包括同步方式,各种锁。
SOCKET编程建议看 《实战linux socket 编程》相当经典,相当全面!
各种算法你可以看 《数据结构》相关书籍。
各种池化技术 建议你上网查找相关资料,同时有本《STL.源码剖析》推荐给你,里面包含了相当多的算法,还有内存池讲解。
数据库的书就太多了,你自己去找吧。