java网络基本知识

java提供的网络功能有三大类:URLSocketDatagram


URL是三大功能中最高级的一种,通过URL ,java程序可以直接送出或读入网络上的数据

Socket是传统网络程序最常用的方式,可以想象为两个不同的程序通过网络的通信信道

Datagram是更低级的网络传输方式,它把数据的目的记录在数据包中,然后直接放在网上


URL编程

在WWW上,每一信息资源都有统一且唯一的地址,该地址就叫URL(Uniform Resource Locator),是WWW的统一资源定位符


URL由4部分组成:资源类型、存放资源的主机域名、资源文件名和端口。

例如,http://61.135.169.125:80/img/baidu_logo.gif

  • http     表示该资源类型是超文本信息
  • 61.135.169.125(www.baidu.com)   是百度的主机域名
  • 80       表示HTTP协议的端口号
  • /img/baidu_logo.gif     表示资源文件名

URL类

<span style="font-size:12px;">import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
//URLReader   获取网页并按行打印
public class test {
	public static void main(String[] args) throws Exception{
		
		//URL数据->InputStreamReader对象->BufferedReader对象->程序处理
		URL hfut = new URL("http://www.baidu.com");
		InputStreamReader is = new InputStreamReader(hfut.openStream());
		BufferedReader br = new BufferedReader(is);
		
		String data;
		//打印输出HTML
		while((data=br.readLine())!=null)
			System.out.println(data);
		//关闭缓冲区
		br.close();
	}
}</span>

URLConnection类

使用URL类可以简单地获得信息,但如果在获取到信息的同时还能向远程的计算机节点传送信息,就需要使用URLConnection类

创建URLConnection类的对象,先创建一个URL对象,然后调用该对象的openConnection()方法就会返回一个对应URL地址的URLConnection对象

<span style="font-size:12px;">import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
</span><pre name="code" class="java"><span style="font-size:12px;">//使用java.net.URLConnection连接到互联网,获取网页并按行打印</span>
public class test {
	public static void main(String[] args) throws Exception{
		//URL数据->URLConnection对象->InputStreamReader->BufferedReader
		URL hfut = new URL("http://www.baidu.com");
		URLConnection uc = hfut.openConnection();
		InputStreamReader is = new InputStreamReader(uc.getInputStream());
		BufferedReader br = new BufferedReader(is);
		
		String data;
		while((data=br.readLine())!=null)
			System.out.println(data);
		br.close();
	}
}

 

基于Socket的网络通信

当程序需要建立网络连接时,必须有一台机器运行一个程序,随时等候连接,而另一端的程序则对其发出连接请求,同电话系统类似

建立连接的过程:

  1. 服务器端生成一个ServerSocket实例对象,随时监听客户端的连接请求
  2. 客户端生成一个Socket实例对象,并发出连接请求
  3. 服务器端通过accept()方法接收到客户端的请求后,开辟一个接口与之进行连接,并生成所需要的I/O数据流
  4. 通信都是通过一对InputStream()和OutputStream()进行的。通信结束后,两端分别关闭对应的Socket接口

Socket通信过程

java简单的C/S的交互

在java中,基于TCP协议实现网络通信的类有两个:在客户端的Socket类和在服务端的ServerSocket类



URL与Socket通信的区别

通信方式

  • Socket在服务器端运行通信程序,不停地监听客户端的连接请求,等待客户端的连接请求,当客户端提出请求时,马上连接并通信
  • URL进行通信时,被动等待客户端的请求

连接数

  • Socket服务器可以同时与多个客户端进行相互通信
  • URL通信方式是服务器只能与一个客户端进行通信
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值