1. 网络编程
-
分类:
IP : 定义节点。 端口 : 区分软件。 URL : 统一资源定位符。 协议 : 标准,规范,规则,合同。 传输层协议 : 互联网中传输数据需要满足传输层协议。 UDP : 相当于写信, 只管写只管邮,协议简单,效率高 ,不安全 大小限制。 TCP : 相当于打电话, 安全,没有大小限制 *****
-
网页编程和网络编程的区别:
网页编程 : 注重的是上层的应用。 网络编程 : 注重是底层数据的传输。
-
IP :
定义节点,区分节点(互联网中的电子设备都可以通过IP定义), 属于java.net网络包。分类: IPV4 ->4个字节->32位 IPV6 ->128位 192.168.0.0~192.168.255.255 非注册IP,供组织内部使用的IP 127.0.0.1 ->本地IP localhost ->本地域名 IP->域名 : DNS服务器。 InetAddress : 表示IP地址。
-
IP常用方法:
static InetAddress getLocalHost() 返回本地主机的地址。 String getHostAddress() 返回文本表示中的IP地址字符串。 String getHostName() 获取此IP地址的主机名。 static InetAddress getByName(String host) 根据主机名称确定主机的IP地址。
-
端口 :
port区分软件: 0~65535表示端口号 2个字节 统一协议下端口号不能冲突 8000以下端口不建议使用,预留端口号 常见的端口号: 80 : http 8080 : tomcat 1521 : Oracle 3306 : Mysql 注意: InetSocketAddress 此类实现IP套接字地址(IP地址+端口号)
-
端口常用方法:
SocketAddress(String hostname, int port) 根据主机名和端口号创建套接字地址。 SocketAddress(InetAddress addr, int port) 根据IP地址和端口号创建套接字地址。 InetAddress getAddress() 获取 InetAddress 。 String getHostName() 获取 hostname 。 int getPort() 获取端口号。
-
URL :
统一资源定位符,向万维网上的“资源”的指针。互联网的三大基石 : URL HTML HTTP URL组成: 1.协议 http 2.域名 www.baidu.com 3.端口 80 4.资源 index.html 5.数据 username=zhangsan&password=123 6.锚点 #a 例如: url : http://www.baidu.com:80/index.html?username=zhangsan&password=123#a
2. Socket 套接字
是传输层为应用层开辟的一个小口子,不同协议下Socket实现不同.
面向Socket编程
udp : 相当于写信|邮寄包裹 非面向连接的 只管写只管邮 协议简单,开销小,效率高 不安全 存在大小限制,一般不超过60k
tcp : 相当于打电话 面向连接 基于3次握手 安全 没有大小限制
UDP :
DatagramPacket 数据报包。
DatagramSocket 此类表示用于发送和接收数据报包的套接字。
两端是平等,数据基于包裹,基于字节数组
-
UDP协议实现基础的发送端 :
1.定义我是发送端 DatagramSocket(int port) 构造一个数据报套接字并将其绑定到本地主机上的指定端口。 2.准备数据。 3.数据打包。 4.发送端发送包裹 void send(DatagramPacket p) 从此套接字发送数据报包。 5.关闭。
-
UDP协议实现基础的接收端 :
1.定义我是接收端。 2.准备包裹用来接收数据。 3.接收端接收数据。 4.处理数据。 5.关闭。
-
tcp协议下传输数据:
客户端 服务器 基于IO tcp协议实现客户端 : 1.构建我是客户端 Socket(String host, int port) IP+端口号指要连接的服务器的IP与端口。 2.基于IO操作: 1)获取输出流。 2)写出。 3)刷出。 4)关闭。 3.关闭。 tcp协议实现服务端 : 1.构建我是服务端 ServerSocket(int port)。 2.阻塞式监听 Socket accept() 侦听对此套接字的连接并接受它。 3.IO操作: 1)获取输入流。 2)读入数据。 3)处理数据。 4)关闭。 4.关闭。
-
tcp实现登录:
(1)tcp协议实现单向登录客户端 : 1.构建我是客户端。 2.键盘接收用户名与密码。 3.基于IO操作向服务器发送数据: 1)获取输出流。 2)写出。 3)刷出。 4)关闭。 4.关闭。 tcp协议实现单向登录服务端 : 1.构建我是服务端。 2.阻塞式监听。 3.IO操作接收客户端数据: 1)获取输入流。 2)读入数据。 3)处理数据。 4)关闭。 4.关闭。 (2)tcp协议实现双向登录客户端 : 1.构建我是客户端。 2.键盘接收用户名与密码 3.基于IO操作向服务器发送数据。 4.基于IO操作接收服务器响应的结果。 5.处理结果。 6.关闭。 tcp协议实现双向服务端 : 1.构建我是服务端。 2.阻塞式监听。 3.IO操作接收客户端数据。 4.处理数据。 5.IO操作将结果响应给客户端。 6.关闭。
-
多用户登录服务器端:
1.通过循环实现,可以实现允许多个客户端访问,可以对多个客户端响应,但是需要排序访问。 2.通过多线程实现: 服务端: 1.构建我是服务端。 2.阻塞式监听。 开启线程为客户端服务。 读入。 写入。 关闭。 3.IO操作接收客户端数据。 4.处理数据。 5.IO操作将结果响应给客户端。 6.关闭。