网络编程
网络编程
TCP/IP 的应用层对应了 OSI 的应用层、表示层和会话层;TCP/IP 的网络接口层对应了 OSI 的数据链路层和物理层。
摄像头推送视频流到流媒体服务器(基于TCP传输),理论传输速度是3M/S,实际测试发现是2M/S
网卡,交换机,应用程序,都可能是瓶颈
用vagarant+virtualbox,完美搞定Linux虚拟机环境
无论是客户端,还是服务器端,它们运行的单位都是进程(process),而不是机器。
一个连接可以通过客户端 - 服务器端的 IP 和端口唯一确定,这叫做套接字对
TCP,又被叫做字节流套接字(Stream Socket),注意我们这里先引入套接字 socket,套接字 socket 在后面几讲中将被反复提起,因为它实际上是网络编程的核心概念。当然,UDP 也有一个类似的叫法, 数据报套接字(Datagram Socket),一般分别以“SOCK_STREAM”与“SOCK_DGRAM”分别来表示 TCP 和 UDP 套接字。
网络编程核心逻辑:
更好地理解 socket:一个更直观的解释
你可以把整个 TCP 的网络交互和数据传输想象成打电话,顺着这个思路想象,socket 就好像是我们手里的电话机,connect 就好比拿着电话机拨号,而服务器端的 bind 就好比是去电信公司开户,将电话号码和我们家里的电话机绑定,这样别人就可以用这个号码找到你,listen 就好似人们在家里听到了响铃,accept 就好比是被叫的一方拿起电话开始应答。至此,三次握手就完成了,连接建立完毕。
接下来,拨打电话的人开始说话:“你好。”这时就进入了 write,接收电话的人听到的过程可以想象成 read(听到并读出数据),并且开始应答,双方就进入了 read/write 的数据传输过程。
最后,拨打电话的人完成了此次交流,挂上电话,对应的操作可以理解为 close,接听电话的人知道对方已挂机,也挂上电话,也是一次 close。
在整个电话交流过程中,电话是我们可以和外面通信的设备,对应到网络编程的世界里,socket 也是我们可以和外界进行网络通信的途径。
(本文完)
汇报工作说结果
请示工作说方案
总结工作说流程
布置工作说标准
1、Java基础技术体系、JVM内存分配、垃圾回收、类装载机制、性能优化、反射机制、多线程、网络编程、常用数据结构和相关算法。
2、对面向对象的软件开发思想有清晰的认识、熟悉掌握常用的设计模式。
3、熟练掌握目前流行开源框架(spring/springmvc/ibatis), 并且对其核心思想、实现原理有一定认知。
4、熟悉Oracle、MySQL等数据库开发与设计以及缓存系统Redis或 Memcached的设计和研发。
5、熟悉底层中间件、分布式技术(包括缓存、消息系统、热部署)、消息中间件:ActiveMQ、RabbitMQ、工作流中间 件:JBPM。
6、精通shell编程,熟练应用awk、sed、grep、strace、 tcudump、gdb等常用命令。
7、有大型分布式、高并发、高负载(大数据量)、高可用性系统设计开发经验。
8、对配置管理和敏捷研发模式有所了解(svn,git)。
9、熟悉常见的一些解决方案及其原理:单点登录、分布式缓存、SOA、全文检索、消息中间件,负载均衡、连接池、流计算等。
10、能大概知道市面上主流技术的特点及业务瓶颈。
11、大数据,非关系型数据库;数据整理,数据分析,数据挖掘
12、云计算,微服务框架(SpringBoot,SpringCloud)
13、数据安全和网络安全及加密
七要素:
形象气质
声音素质
情商
沟通力
演讲力
领导力
说服力(销售技能)