网络编程:
IP:定义网络上每一个节点(电脑,手机,iPad,路由器。。。)
IP分为2大类: lpv4 lpv6
特殊的IP:
192.168.0.0 ~ 192.268.255.255 非注册ip,供公司组织内部使用的ip地址
127.0.0.1 本地Ip不能冲突
localhost 本地 域名
ip—>域名 DNS服务器
InetAddress 此类表示互联网协议(lp)地址
端口:
- 区分软件
- 2个字节 0 ~ 65535之间的整数 udp tcp
- 统一协议下的端口号不能冲突
- 建议使用8000以上自定义端口号
常见的端口号:
http : 80
tomcat : 8080
oracle : 1521
mysql : 3306
InetSocketAddress 此类实现 IP 套接字地址(IP 地址 + 端口号)
构造方法摘要
InetSocketAddress(InetAddress addr,int port) 根据IP地址和端口号创建套接字地址。
InetSocketAddress(int port) 创建套接字地址,其中ip地址为通配符地址,端口号为指定值。
InetSocketAddress(String hostname,int port) 根据主机名和端口号创建套接字地址。
常用方法:
InetAddress getAddress()
获取InetAddress
String getHostName
获取 hostname
int getPort()
获取端口号
URL 统一资源定位符
定位网络上的资源
互联网的三大基石:http html url协协议:http
域名:www.baidu.com
端口:80
资源:index.html?uname=zhangsan&upwd=123#a
URL 类 类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针
爬虫
InputStream openStream()打开到此 URL的连接并返回一个用于从该连续读入的
InputStream
想要一行一行的读取多个字符的内容
循环读取多行
刷出
关闭
资源传输协议:
**udp:**写信 非面向连接 只管写只管丢 协议简单,开销小,效率高 不安全 大小有限制,最好不要超过60k
**tcp:**打电话 面向连接 安全 效率低 基于3次握手
Socket 套接字
socket 就是传输层为应用层开辟的小口子,通过这个socket 进行发送 | 接收数据
不同的协议对于socket的实现不一样
UDP实现Socket 编程
DatagramSocket 定义发送端,接收端
DatagramPacket 数据报包 为数据进行打包
*** udp基本流程**: 发送端
- 定义发送端 DatagramSocket(端口)
- 准备数据——>打包
- 发送 send
- 关闭
发送端从文件中读取数据发送接收端,接收端接到数据,打印到控制台,写到本地
udp基本流程:
- 定义接收端 DatageamSocket(端口)
- 准备一个字节数组进行打包,用来接收数据
- 接收
- 处理数据
- 关闭
UDP 基于字节数组传输
TCP 基于Io流传输
tcp实现客户端基本流程:(client)
1. 定义客户端 SocketSocket(String host,int port)创建一个流套接字并将其连接指定主机上的指定端口号
2. Io操作
3. 关闭
tcp实现服务端开发:(server)
1. 定义服务端 ServerSocket(int port)创建绑定到特定端口的服务器套接字
2. 阻塞式监听 Socket accept() 侦听并接受到此套接字的连接
3. Io操作
4. 关闭
tcp实现单项登录基本流程:(client)
- 定义客户端 Socket Socket(String host,int port)创建一个流套接数字并将其连接到指定主机上的指定客户端号
- 接收到用户输入的数据,io发送到服务器
- 关闭
tcp实现单项登录服务端开发:(server)
1.定义服务端 ServerSocket(int port)创建绑定到特定端口的服务器套接字。
2.阻塞式监听 Socket accept() 侦听并接受到此套接字的连接。
3.io操作
4.处理数据(校验->结果打印到控制台)
5.关闭