网络编程
学习网络编程所需要的知识储备
- IO流
- 异常处理
- 计算机网络
为什么需要网络编程?
人是集群动物,至今为止我们所学习的知识都是对当前主机进行操作,那么如果我们想与别的主机进行交互就需要网络通信
什么是网络编程
我们先来了解一下什么是计算机网络
顾名思义,计算机网络的通俗解释就是通过网络把各个计算机连接到一起,并使网络当中的各个计算机可以相互通信,至于具体内容不在此分析
举个栗子:
当你使用浏览器在百度上搜索“如何找到一个女朋友”时,此时你的计算机就和百度的某台服务器通过网络连接了起来,与此同时,百度的服务器通过网络把你所看到的网页内容以某种数据的形式传输给你——的计算机(如果能直接传输给你,你就能直接在人脑当中玩游戏看电影了(我瞎扯的))
(百度给我找到了一亿多个结果,果然我该反思一下为什么找不到了)
当然,更准确的说网络通信应该是两台计算机当中的两个进程之间的通信,但这种通信我们可以同时进行多个
网络编程跟Java的关系
网络编程中有很多复杂的网络协议,而在Java中,这些底层的复杂的网络协议大都由虚拟机帮我们实现了
我们只需要调用Java标准库提供的接口就可以简单的编写网络程序,而不用关注具体的通信细节(所以Java是很适合进行网络编程的)
什么是网络协议
举个不太恰当的栗子:
船和潜水艇大家应该都知道吧,当船在水面上航行,潜水艇在水下潜行,此时他们俩能够进行交互行为吗(你可别跟我说打电话)
正常来说应该是不行的,而同在水面航行的船1跟船2是可以进行交互的
为什么?
因为他们同在水面,此时你就可以把在水面航行看成一种网络协议,而在水下潜行看成另一种网络协议
同理,在同一个网络当中,任意两个计算机都可以实现通信,因为同一网络的计算机都需要遵循同一种网络协议
TCP/IP协议
TCP/IP协议泛指互联网协议,其中最重要的几个协议就是TCP协议、IP协议和UDP协议
-
TCP(Transmission Control Protocol,传输控制协议):
为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议
-
IP(Internet Protocol,网际互连协议):
IP位于TCP/IP模型的网络层(相当于OSI模型的网络层),它可以向传输层提供各种协议的信息,例如TCP、UDP等
对下可将IP信息包放到链路层,通过以太网、令牌环网络等各种技术来传送
-
UDP(User Datagram Protocol,用户数据报协议):
OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序
IP地址
每台接入互联网的计算机都至少有一个IP地址,它代表该计算机在网络当中的接口,你可以把它
编写ing~