1、什么是网络编程:网络编程主要解决计算机与计算机(手机、平板...)之间的数据传输问题。
2、网络编程和网页编程的区别:
网络编程:不需要基于html页面就可以达到数据之间的传输。比如:飞秋,qq,微信。
网页编程:就是基于html页面的基础上进行数据的交互。比如:珍爱网、淘宝。
3、网络通讯的三要素: 1. IP 2. 端口号 3. 协议.
4、IP地址:Internet上的每台主机(Host)都有一个唯一的IP地址。IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开。例如159.226.1.1。(四个字节)
IP地址类别: IP地址=网络号+主机号
A类地址 = 一个网络号 + 三个主机号 2^24 政府单位
B类地址 = 两个网络号+ 两个主机号 2^16 事业单位(学校、银行..)
C类地址= 三个网络号+ 一个主机号 2^8 私人使用..
注意: 127.0.0.1 表示本机回环地址
InetAddress类:java.net包下,表示互联网协议 (IP) 地址
常用方法: getLocalHost(); 获取本机的IP地址对象
getByName("IP或者主机名") 根据一个IP地址的字符串形式或者是一个主机名生成一个IP地址对象。 (用于获取别人的IP地址对象)
getHostAddress() 返回一个IP地址的字符串表示形式。
getHostName() 返回计算机的主机名
5、端口:一台计算机上可能同时运行多个网络程序,IP地址只能确保把数据送到指定的计算机,但不能保证把这些数据传递给哪个网络程序;通过端口来指定哪个网络程序
端口使用一个16位的数字来表示,它的范围是0~65535,1024以下的端口号保留给预定义的服务,如:http使用80端口;
6、协议:UDP 将数据极封装为数据包,不需要建立连接。
每个数据包大小限制在64K中
因为无连接,所以不可靠
因为不需要建立连接,所以速度快
如:留言,发短信等
TCP 面向连接,有特有的通道 在连接中传输大数据量
通过三次握手机制连接,可靠协议
通信前必须建立连接,效率稍低
如:打电话,视频.
7、socket通信原理:参照ppt12
8、udp协议下的Socket
步骤: 1、建立udp的服务----DatagramSocket
2、准备数据,然后把数据封装 到数据包中--DatagramPacket
3、调用udp的服务发送数据---send
4、关闭资源
DatagramSocket(udp插座服务)
DatagramPacket(数据包类)
DatagramPacket(buf, length, address, port)
buf: 发送的数据内容
length : 发送数据内容的大小。
address : 发送的目的IP地址对象
port : 端口号。
案例:使用udp与内网通
通讯 疑问:知道IP地址与端口是不是就可以给指定的软件发送消息时,软件是不是会处理所有的数据?
答案:每个网络程序都有自己所处理的特定格式数据,如果接收到的数据不符合指定的格式,那么就会被当成垃圾数据丢弃。
飞Q接收的数据格式: version:time :sender : ip: flag:content ; 版本号:时间 :发送人 :IP: 发送的标识符(32): 真正的内容;
在udp协议中,有一个IP地址称作为广播地址,广播地址就是主机号为255地址。
给广播IP地址发送消息的时候,在同一个网络段的机器都可以接收 到信息。 192.168.15.255
9、Tcp协议下的Socket
客户端 :Socket(String host, int prot);
服务器端: ServerSocket(int port);
获得输入输出流,Socket类中的方法
getInputStream,获得基于当前Socket的输入流
getOutputStream,获得基于当前Socket的输出流
步骤:
服务器端创建ServerSocket对象,调用accept方法返回Socket对象
客户端创建Socket对象,通过端口连接到服务器
客户端、服务器端都使用Socket中的getInputStream方法和getOutputStream方法获得输入流和输出流,进一步进行数据读写操作 。