Java基础——网络

1、网络模型:OSI(Open System Interconnection开放系统互联)参考模型,TCP/IP参考模型

*网络通讯三要素:
(1)IP地址:网络中设备的标识,不易记忆,可用主机名localhost
(2)端口号:用于标识进程的逻辑地址,不同进程的标识不同。有效端口为065535,其中01024为系统使用或为保留端口
(3)传输协议:通讯规则。常见协议TCP、UDP
*UDP:将数据及源和目的封装在数据包中,不需要建立连接。每个数据包的大小限制在64k内。因无连接,是不可靠协议,但速度快。
TCP:建立连接,形成传输数据通道,在连接中进行大量数据传输。通过三次握手完成连接,是可靠协议,必须建立连接,效率会稍低。

2、Socket就是为网络服务提供一种机制,通信两端都有Socket。网络通信其实就是Socket之间的通信,数据在两个Socket间通过IO传输。
*Socket关键代码:
Socket s = new Socket(“time-a.nist.gov”,13);
InputStream inStream = s.getInputStream();
第一行代码用于打开一个套接字,负责启动该程序内部和外部之间的通信,将远程地址和端口号传递给套接字的构造器。第二行代码是获取从套接字中读取数据的流。
*套接字超时:可在第一行代码下调用setSoTimeout方法设置超时值
s.setSoTimeout(1000);
*解决套接字超时的另一种方法:
Socket s = new Sokcet();
s.connect(new InetSocketAddress(host,port),timeout);
*服务器套接字方法:
ServerSocket(int port);
创建一个监听端口的服务器套接字
Socket accept();
等待连接。该方法阻塞(使之空闲)当前线程直到建立连接为止。方法返回一个Socket对象,程序可以通过这个独享与连接中的客户端进行通信。
Void close();
关闭服务器套接字
*若要连接多个客户端服务,需要使用ThreadEchoHandler类实现Runnable接口,每次实现一个连接就会启动一个新的线程,等待下一个连接。

3、访问Web服务器
*统一资源定位符(Uniform Resource Locator,URL)、统一资源标识符(Uniform Resource Identifier,URI)。URI是语法结构,包含用来指定Web资源的字符串的各种组成部分,作用是解析,URL是URI的特例,包含了定位Web资源的信息,可大考一个到达资源的流。
*使用URLConnection获取信息
调用URL类中的openConnection方法获得URLConnection对象
URLConnection connection = url.openConnection();
调用下列方法设置请求属性
setDoInput
setDoOutput
setIfModifiedSince
setUseCaches
setAllowUserInteraction
setRequestProperty
setConnectTimeout
setReadTimeout
调用connect方法连接资源
connection.connect();
与服务器连接后,可调用以下方法查询各标准字段
getContentType
getContentLength
getContentEncoding
getDate
getExpiration
getLastModified
获取输入流用以读取信息
getInputStream

4、发送E-mail:使用javaMail
先设置一些和邮件服务器相关的属性
Mail.transport.protocol=smtps
Mail.smtps.auth=true
Mail.smtps.host=smtp.gmail.com
Mail.smtps.user=cayhorstmann@gmail.com
读入属性文件,获取邮件会话
Session mailSession = Session.getDefaultInstance(props);
用恰当的发送者,接受者,主题和消息文本来创建消息
MineMessage message = new MineMessage(mailSession);
Message.setFrom(new InternetAddress(from));
Message.addRecipient(RecipientType.To,new InternetAddress(to));
Message.setSubject(subject);
Message.setText(builder.toString);
将消息发走
Transport t = mailSession.getTransport();
t.connect(null,password);
t.sendMessage(message,message.getAllPecipient());
t.close();

5、网络架构:
(1)C/S(Client/Server)
特点:客户端和服务端都需要编写
客户端需要维护
客户端可以分担部分运算
(2)B/S(Browser/Server)
特点:只需要编写服务端,客户端其实就是已有的浏览器
客户端不需要维护
运算全在服务端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值