Java学习17 网络编程
来源:互联网 发布:ik hr人力资源软件 编辑:程序博客网 时间:2024/06/05 16:47
网络基础
计算机网络
主要功能:
1. 资源共享
2. 信息传输与集中处理
3. 均衡负荷与分布处理
4. 综合信息服务
网络分类:
1. 局域网,LAN,local area network
2. 城域网,MAN,metropolitan arem network
3. 广域网,WAN,wide area network
拓扑(Topology):
1. 环形网
2. 星形网
3. 总线型网
传输介质:
1. 双绞线网
2. 同轴电缆网
3. 光纤网
4. 卫星网
信号频带带宽:
1. 基带网(10k)
2. 宽带网
网络工作模式
1. 专用服务器结构(Server-Based),工作站/文件服务器
2. 客户机/服务器模式(Client/Server,C/S)
3. 对等式网络(Peer-to-Peer,P2P)
网络通讯协议
- 分层:由于节点之间联系复杂,在制定协议时,把复杂的成分分解成一些简单的成分,然后复合起来。最常用的复合方式是分层,即:同层间可以通信;上一层可调用下一层,但与再下一层不发生关系
- 物理层
- 数据链路层
- 网络层
- 传输层
- 会话层
- 表示层
- 应用层
- 最高层:用户应用程序
最底层:物理通信线路
常用网络通信协议:
- TCP/IP协议:TCP(Transmission Control Protocol,传输控制协议),IP(Internet Protocol,网际协议)
- HTTP协议:HTTP(Hypertext Transfer Protocol,超文本传输协议)
- FTP协议:FTP (File Transfer Protocol,文件传输协议)
- SMTP协议:SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)
- POP3/IMAP协议:POP3(Post Office Protocol - Version 3,邮局协议版本3),IMAP(Internet Message Access Protocol,Iternet消息访问协议)
IP地址/域名/端口
- IP地址
- 域名(Domain Address):由域名服务器(DNS, Domain Name Server)解析为对应IP地址
端口(Port):取值0~65535
相关API:
- java.net.InetAddress
32位或128位无符号数字表示的IP地址 - java.net.Inet4Address
InetAddress的子类,IPv4地址。 - java.net.Inet6Address
InetAddress的子类,IPv6地址。
- java.net.InetAddress
URL
Uniform Resource Locator,统一资源定位器。
默认通讯端口:80
java.net包定义了URL类:
public URL(String spec);public final InputStream openStream() throws IOException;
openStream()
:打开到此URL的连接,并返回一个用于从该连接读入的InputStream代理服务器:
设置系统参数:http.proxyHost``http.proxyPort
java -Dhttp.proxyHost=192.168.1.1 -Dhttp.proxyPort=11080 URLReader
Socket编程
Socket:套件字,两个进程实现数据交换的一个双向网络通信连接链路的端点。
- Socket通常用来实现Client-Server连接。
- 寻址:机器名/IP地址 + 端口号
- java.net包定义的两个类Socket和ServerSocket,分别用来实现双向连接的client和server端。(沿用流式IO模型)
- ServerSocket:
调用accept()方法等待连接;若没有连接,服务端阻塞。连接后返回socket对象,可以打开连接到Socket的IO流,进行数据读写操作;通信结束后关闭打开的IO流和socket(调用close()方法); - Socket:连接server端进行IO读写操作,通信结束后关闭打开的IO流和socket。
- ServerSocket:
NIO非阻塞式Socket通信
- 非阻塞式I/O
- 避免read()/readLine()等IO操作的阻塞方法
- 主要涉及选择器Selector和通道Channel的使用
- 举例:多用户聊天室
阅读全文
0 0
- Java学习17 网络编程
- Java 网络编程 学习
- Java学习---网络编程
- Java学习---网络编程
- java学习--网络编程
- Java学习【网络编程】
- java学习----网络编程
- Java网络编程学习
- Java网络编程入门学习
- java学习之 网络编程
- java网络编程 深入学习
- java网络编程学习笔记
- JAVA网络编程学习笔记
- 开始学习java网络编程
- java网络编程学习笔记
- java学习笔记-网络编程
- java学习10---网络编程
- Java网络编程 学习笔记
- python朴素贝叶斯实现-2
- Linux 查看进程和删除进程
- 批处理命令Bat
- Spring定时任务注解标签-- @Scheduled之cron表达式
- for和while
- Java学习17 网络编程
- 数据库创建、数据泵导入导出等操作
- 向数据库存储读取图片方法总结
- 每日练习
- STM32~FPU协处理器
- spring的module-context.xml文件报找不到dubbo.xsd文件错误
- 机器学习实用教程(译)-1
- Array Partition I[LeetCode 561]
- cvc-complex-type.2.4.a: Invalid content was found starting with element