您的位置:首页 > 理论基础 > 计算机网络

Java学习17 网络编程

2017-12-09 08:58 260 查看

网络基础

计算机网络

主要功能:

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地址。

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。

NIO非阻塞式Socket通信

非阻塞式I/O

避免read()/readLine()等IO操作的阻塞方法

主要涉及选择器Selector通道Channel的使用

举例:多用户聊天室
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: