.网络基础(推荐本书:《PCTIP详解》貌似对网络编程有比较好见解)
1. 网络编程(又叫TCPIP编程)
2. TCP/IP,UDP协议
(1)IP(internet protocol)协议是网际层主要协议,支持网间互连的数据报通信。它提供主要功能有:
无连接数据报传送
数据报路由选择和差错控制,每一个端口都有65532个
(2)IP占4个字节,每个人的机器都有自己的IP,但是这个只是内网IP并不是真实的IP,我们用的IP一般为IPV4
3. Socket通信(TCP/UDP)
(1)TCP(transmission control protocol)是专门设计用于在不可靠的因特网上提供可靠的,端到端的字节流通信协议。它是一种面向连接的协议。TCP连接是字节流而非报文流(电话)效率低,可靠
(2)UDP(user data protocal)UDP 向应用程序提供一种发送封装的原始IP数据报的方法,并且发送时无需建立连接。是一种不可靠的连接(微信和QQ里面的发语音貌似是UDP,还有游戏(比如我们玩游戏时,会发现某人突然站在那里不懂了,我们猛打他,突然他出现在你的面前就把你打死了,那是因为它的UDP包丢了,你看不到他的运动轨迹),和发电报差不多。)。不可靠,但效率高。
(3)两个Java应用程序可通过一个双向的网络通信连接实现数据交换,这个双向链路的一端为一个Socket。
(4)Socket通常用来实现client-server连接。
(5)java.net包中定义的两个类Socket和ServerSocket,分别用来实现双向连接的Client和server端。
(6)建立连接时所需的寻址信息为远程计算机的IP地址和端口号(Port number)。可以分为TCP端口和UDP端口,他们的端口号可以相同,但是代表的内容不一样,每一个都是65536个端口号
(7)一般的网络编程称为Socket编程
(8)一般来说ServeSocket是TCP网络连接的接口,其中只有TCP协议才有Client和Server之分。Socket可以用到其中Client端的插座,
4.网络基础概念:
(1)什么是计算机网络:把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规摸大,功能强的网络系统,从而使众多的计算机可以方便的互相传递信息,共享硬件,软件,数据信息等资源。
(2)计算机网络的主要功能:资源共享;信息传输与集中处理;均衡负荷与分布处理;综合信息服务(WWW/综合业务数字网络ISDN)。
5.网络通信协议及接口:
(1).什么是网络通信协议:计算机网络中实现通信必须有一些约定即通信协议,对速率,传输代码,代码结构,传,输控制步骤,出错控制等制定标准。
6.网络通信接口:为了是两个结点之间能进行对话,必须在他们之间建立通信工具(即接口),使彼此之间能进行信息交换,接口包括两部分:
(1)硬件装置:实现结点之间的信息传送
(2)软件装置:规定双方进行通信的约定协议。
7.通信协议分层的思想:
(1)为什么要分层:由于结点之间联系很复杂,在制定协议时,把复杂成份分解成一些简单的成份,再将它们复合起来。最常用的复合方式,即同层间可以通信,上一层可以调用下一层,而与再下一层不发生关系,各层互不影响,利于系统的开发和扩展。
(2)通信协议的分层规定:把用户应用程序作为最高层,把物理通信线路作为最低层,将期间的协议处理分为若干层,规定每层处理的任务,也规定每层的接口标准。
(3)参考分层模型
OSI参考分层模型 TCP/IP参考分层模型
应用层 应用层
表示层 传输层
会话层 网络层
传输层 物理+数据链路层
网络层
数据链路层
物理层
(4),在网络编程TCP中。服务器的端口号要一致,就是Server里面设置的端口号与Client的端口号一致(其中accept()和receive()里也是阻塞式方法)