一、网络编程概述
(一)、计算机网络
1、定义:把分布在不同地理区域的具有独立功能的计算机,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统
2、简单概述:把不用区域的计算机(广义上的),通过通信设备和线路连接起来,
可以实现数据的传输和共享 的系统
借助计算机网络,实现我们所写的程序在不同电脑上看可以进行数据的传输
3、实现不同计算机之间的连接,必须有介质连接
4、网络编程是干什么:
Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。
java语言是支持网络数据传输的,将底层的西街封装起来了,给程序员提供了一套标准的类库,很方便的使用java语言开发出可以进行网络通信的软件
5、网络编程核心问题:如何找到网络世界的目标主机,以及目标软件
win+r cmd ipconfig 查看电脑ip
6、网络编程中有两个主要的问题:
(1)、如何准确地定位网络上一台或多台主机
(2)、找到主机后如何可靠高效地进行数据传输
7、网络编程的目的:直接或间接地通过网络与其它计算机进行通讯
二、网络模型
(一)、OSI参考模型(比较理想的化标准模型):
分七层:
(二)、TCP/IP参考模型(实际使用):
分四层:
应用层(http)
运输层(协议)
网络层(IP)
物理链路层(硬件设备)
三、网络信息要素:
(一)、ip:找主机
1、网络世界中,是计算机的地址
(1)、局域网地址 :连接到路由器,会自动分配ip
(2)、广域网网址:
(3)、本机地址:本地回环地址
(二)、端口:找程序
1、计算机运行中的程序编号,对应的是程序
2、0 ~ 1024 未被系统使用或保留的端口号,0 ~ 65535为有效的端口号,也就是说我们要对一些程序定义端口号的时候,要选择1024 ~ 65535范围内的整数数字(不能与已有端口冲突)
(三)、通信协议:
1、目的:实现安全传输
2、为了安全可靠的进行数据传输,需要对传输内容
(1)、TCP(传输控制协议 Transmission Control Protocol):
1)、三次握手:使用前先要检测网络通畅,客户端是否能与服务器正常联系
(2)、UDP(用户数据报协议 User Datagram Protocol)
将数据封装成一个一个的数据报,数据报中含 数据,源(自己电脑ip),目标(接收端ip d端口),只管发送,是否成功不知道
注:1、TCP是可靠的,但相对UDP效率低
2、UDP是不安全的,但是效率高
3、TCP三次握手和四次挥手的过程