网络编程概述
什么是计算机网络
把不同区域的计算机(广义上的)通过通信设备和线路连接起来,
可以实现数据的传输和共享的系统.
实现不同计算机之间的联系,必须有介质连接
最开始在一间办公室
后来一栋楼
一个城市
一个国家
全球
网络编程是什么
聊天--->聊天软件 QQ
Java语音是支持网络间的数据传输的,将底层的细节封装
给程序员提供了一套标准的类库
很方便使用Java语言开发出可以进行网络通信的软件.
借助计算机网络,实现我们所写的程序,在不同的电脑上,
可以进行数据的传输
网络编程核心问题:
如何找到网络世界中的目标主机,以及目标软件
Win+r cmd ipconfig 查看自己电脑的ip
如何安全可靠的进行网络数据传输 协议 规则
网络的一些基本知识
网络模型
OSI参考模型,是一个理想化标准模型
实际上的使用Tcp/ip网络模型
分成四层
应用层(http)
运算层(协议)
网络层(Ip)
物理链路层(硬件设备)
网络传输数据为什么要分层
在不同的层中,对数据加入不同的头(协议,ip)
通信要素: ip 端口 协议
目标主机,以及目标软件
IP:在网络世界中,是计算机的地址
局域网地址: 192..168.1.20 连接到路由器,会自动分配ip
广域网地址:家里的宽带 与外界连接
本地地址:本地回环地址 127.0.0.1
端口:是计算机中运行的程序的编号,对应的是程序
ip找主机
端口找程序
Ip+端口 找到目标计算机 以及你想要的程序
端口号0-65535之间 由于0-1024被一些系统程序使用
所以我们开发的程序可以从1024-65535区间定义,
但是不能与已有的端口冲突
如何安全传输---通信协议
为了安全可靠的进行数据传输,需要对传输的内容,速率,出错之后的处理办法等进行控制而制定的一些规约,称为协议:
●传输控制协议TCP(Transmission Control Protocol)
使用TCP协议进行数据传输前,
必须检测网络是否通畅,客户端是否能连接到服务器端,
如果能连接到,则进行数据传输,如果连接不到,会报错,
采用的是3次握手机制
TCP是可靠的,相对UDP效率较低
● 用户数据报协议UDP(User Datagram Protocol)
将数据封装数据报
数据报包含 数据 自己的ip 目标ip
发送前不需要建立连接,直接发送 例如发送导弹(目标坐标)
是否发送成功,不清楚,不知道
是不安全的,但是效率高
Java中的两种协议下的编程
基于TCP协议的编程
服务器端:
ServerSocket socket=new ServerSocket(9999);
Socket socket1=socket.accept();//监听
客户端:
Socket socket=new Socket("127.0.0.1",9999);//创建Socket对象时,建立与服务器端联系
基于UDP协议的编程