黑马程序员------毕老师视频笔记第23-24天------网络编程(1)
来源:互联网 发布:网络理财平台哪个好 编辑:程序博客网 时间:2024/05/18 06:36
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一概述
java对网络编程的支持很强。网络通信的基础是数据的通信。
要通信,就要先确定目标主机,使用IP地址。找到目标主机,可以通过指定的软件进行通信,数据要发送到对方指定的应用程序上,例如可以使用QQ,也可以使用FeiQ,为了表示这些应用程序,所以给这些网络应用程序都使用数字进行了标识,为了方便称呼这些数字,就起名叫做端口。(这里的端口不是说物理端口,指的是逻辑端口)。找到了目标端口了,还要定义一个通信的规则,双方都能认识,这个规则就是协议。国际组织定义了一个通用的协议,叫TCP/IP。当然,还可以有其他的规则,用于特定的环境。
IP地址,4字节,每段最大255
127.0.0.1本地回环地址,测试网卡,ping127.0.0.1
还有局域网保留字段,像192.168.*.*等
计算机的增长,IP不够用,将一片区域通过子网掩码划分为一个局域网,公用一个公网IP
注意的端口冲突
常用默认端口,如80,web端口,3306,MYSQL数据库端口
常用协议UDP,TCP
二网络模型
TCP协议和UDP协议就在传输层
IP协议就在网络层
HTTP协议,FTP协议等在应用层
物理层有光纤、网线、无线等
发送端数据从应用层向下传输,每下一层要加上这层特有的标识封装成包(数据封包),接收端物理层接收到数据包之后,向上传输,要拆包
某一层封包的数据只有对应的层才能拆,协议一样
实际应用的是TCP/IP模型,四层
我们现在进行网络编程,主要是在网际层和传输层
以后进行javaWeb开发,主要在应用层
三IP地址
IP地址:InetAddress
网络中设备的表示
不易记忆,可用主机名
本地回环地址:127.0.0.1,主机名:localhost
java中操作IP,把它封装成了类
API中找java.net包,找到InetAddress类,就是IP地址对象,发现没有公开的构造函数,所以通过静态方法获得InetAddress对象。
import java.net.*;class IPDemo{public static void main(String[] args)throws Exception{InetAddress i = InetAddress.getLocalHost();//这里会抛出异常System.out.println(i.toString());System.out.println("address:"+i.getHostAddress());System.out.println("name:"+i.getHostName());//获取任意一台主机IPInetAddress ia = InetAddress.getByName("百度网址,csdn不让写,这里自己变一下");//可以写IP地址System.out.println("address:"+ia.getHostAddress());System.out.println("name:"+ia.getHostName());}}
端口号
用于表示进程的逻辑地址,不同进程的标识
有效端口:0---65535,其中0---1024为系统或保留端口
端口号就是一个数字,所以没有必要封装成类
传输协议
UDP:将数据及源和目的封装成数据包,不需要建立连接,每个数据报大小限制在64k内,因无连接,是不可靠协议,又因为不需要建立连接,速度快。
UDP速度快,但容易丢包,生活中,FeiQ聊天就是UDP的,数据发出去就行,求速度,网络视频会议用的也是UDP,电脑桌面共享也是。
TCP:建立连接,形成传输数据的通道,在连接中可以进行大数据量传输,通过三次握手完成连接,是可靠协议,因为必须建立连接,效率会稍低。
先要确认对方在,建立连接。
三次握手:A发一个包给B,B回一个包给A表示接到了,A再给B一个包说我也能接到。
生活中,下载用的就是TCP,不能丢包,打电话也是。
TCP和UDP是比较复杂的,所以Java中封装成了类。
四Socket
我们所说的网络编程就是Socket编程。Socket:插座
Socket就是为网络服务提供的一种服务
通信两端都有Socket
网络通信其实就是Socket之间的通信
数据在两个Socket间通过IO传输
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
- 黑马程序员------毕老师视频笔记第23-24天------网络编程(1)
- 黑马程序员------毕老师视频笔记第23-24天------网络编程(2)
- 黑马程序员------毕老师视频笔记第23-24天------网络编程(3)
- 黑马程序员------毕老师视频笔记第23-24天------网络编程(4)
- 黑马程序员------毕老师视频笔记第22天-----图形化编程(GUI)(1)
- 黑马程序员------毕老师视频笔记第22天------图形化编程(2)
- 黑马程序员------毕老师视频笔记第18-21天------IO输入与输出 (1)
- 黑马程序员------毕老师视频笔记第13-17天------JavaAPI(基本数据类型包装类)
- 黑马程序员------毕老师视频笔记第13-17天------集合框架(Collection)
- 黑马程序员------毕老师视频笔记第13-17天------集合Collection-List-(ArrayList、LinkedList)
- 黑马程序员------毕老师视频笔记第13-17天------集合Collection-Set-(HashSet、TreeSet)
- 黑马程序员------毕老师视频笔记第18-21天------IO输入与输出(2)
- 黑马程序员------毕老师视频笔记第18-21天------IO输入与输出(3)
- 黑马程序员------毕老师视频笔记第18-21天------IO输入与输出(4)
- 黑马程序员------毕老师视频笔记第13-17天------JavaAPI(String类、StringBuffer类)(1)
- 黑马程序员------毕老师视频笔记第13-17天------泛型
- 黑马程序员------毕老师视频笔记第13-17天------集合Map
- 黑马程序员------毕老师视频笔记第五天------面向对象(封装)
- 项目管理心得:一个项目经理的个人体会、经验总结
- vmstat命令详解——linux性能分析
- 编程之美2014测试阶段题目--传话游戏
- 明日边缘 Edge of Tomorrow (2014)旋风下载
- 黑马程序员------毕老师视频笔记第22天------图形化编程(2)
- 黑马程序员------毕老师视频笔记第23-24天------网络编程(1)
- 黑马程序员------毕老师视频笔记第23-24天------网络编程(2)
- 黑马程序员------毕老师视频笔记第23-24天------网络编程(3)
- [LeetCode97]Set Matrix Zeroes
- 消息队列
- 关于AnchorPoint和setPosition
- [Rotate Image48]Rotate Image
- COM原理速成~
- COM组件技术