何谓网络编程

网络编程

.IP

1. 定义网络上的不同节点. IPv4:32位     IPV6:128位

非注册IP地址(公司内部使用):  192.168.0.0 ~ 192.168.255.255

2. 特殊的IP:127.0.0.1    本地IP;1ocalhost 本机域名;DNS域名解析器

3. java.net 类 InetAddress  此类表示互联网协议 (IP) 地址。static InetAddress getLocalHost()  返回本地主机。 static InetAddress getByName(String host)  在给定主机名的情况下确定主机的 IP 地址

.端口

1. 端口: 区分软件的,定义端口 2个字节   0~65535

相同的协议下端口不能冲突

端口自定义越大越好,8000以上,8000以内预留端口号

特殊的端口号:80: http;8080: tomcat;1521: Oracle端口号3306: mysql端口号;INetSocketAddress  此类实现 IP 套接字地址(IP 地址 + 端口号)。

.URL      1. URL: 统一资源定位符|器

互联网的三大基石: html  http   url协议:http;域名:www.baidu.com;端口:80  默认80资源:index.html?name=zhangsan&age=123#a;http://www.baidu.com:80/index.html?name=zhangsan&age=123#a

URL URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。

2.常用的几种方法:

String getFile()获取此 URL 的文件名。String getHost()获取此 URL 的主机名(如果适用)。String getPath()获取此 URL 的路径部分。int getPort()获取此 URL 的端口号;String getProtocol()获取此 URL 的协议名称String getQuery()获取此 URL 的查询部分。

String getRef()获取此 URL 的锚点(也称为“引用”).

3.爬虫原理

(1)示例1;

 

(2)示例2:

 

.协议

1. udp协议: 规范  合同

(1)udp :非面向连接的  写信 ,不安全,效率高,协议简单,开销小,大小有限制一般不超过60k

udp如何实现Socket编程: 发送端和接收端是平等的

DatagramSocket  此类表示用来发送和接收数据报包的套接字

 DatagramSocket(int port)

DatagramPacket  此类表示数据报包。

 UDP基本流程:发送端

创建发送端,指明发送端的端口

准备数据,转为字节数组

把数据打包 指明接收端的地址和端口号  DatagramPacket

发送数据

关闭

示例:

 

(2)UDP基本流程:接收端

构建接受端,指定接受端端口;准备字节数组,用来存储接口收据的;把字节数组打包;阻塞式接收;处理数据;关闭

示例如下:

 

2. tcp

(1)tcp:面向连接的 打电话 ,安全,效率低,开销大   3次握手:1.拨号   2.回访:响应  3.发送数据 ,基于IO穿出数据

应用层如何与传输层进行沟通? 通过Socket套接字

面向Socket编程,Socket相当于插座,是两层之间沟通的接口,不同协议,Socket的实现不一样

(2)tcp基本流程:客户端

创建客户端  Socket 指定服务端的ip和端口  Socket(String host, int port);io操作;关闭

示例:

 

tcp基本流程:服务端

构建服务端  ServerSocket  指定端口  ServerSocket(int port)

阻塞式监听  Socket accept() ;一个客户端就是一个socket  IO操作;关闭

示例:

猜你喜欢

转载自www.cnblogs.com/ruanjianwei/p/11790292.html