Java网络

HTTP请求:

HTTP请求由三个组件组成:

方法——统一资源标识符(URI)——协议/版本

请求标头

实体主体

 

每个HTTP请求都可以使用HTTP标准中指定的其中一个请求的方法。HTTP1.1支持7类请求:GET、POST、HEAD、OPTIONS、PUT、DELETE和TRACE。GET和POST在互联网应用中最为常用。

请求标头包含有关客户端环境和请求实体主体的有用信息。每个标头都用一个回车/换行符(CRLF)进行分隔,这对于HTTP请求格式而言很重要。CRLF告诉HTTP服务器,实体主体从这里开始,在有的互联网编程书籍中,这个CRLF会被当作一个HTTP请求的第4个组件。

HTTP响应:

HTTP响应由三个组件组成:

协议——状态吗——描述

响应标头

实体主体

 

用java.net.URL对象可以表示URL,其构造器包含协议,主机,端口,路径,可以通过getFile(),getHost(),getPath(),getPort(),getProtocol(),getQuery()等方法来获取相应的参数信息。

通过URL.openStream()可以读取一个web资源,但也可以URL.openConnection()来获得URLConnection实例,即获取一个与远程计算机连接的对象,可以通过该对象对一台远程机器进行读取或写入资源。

URLConnection类有2个boolean域:doInput和doOutput,分别表示URLConnection是否可以用来读取和写入。doInput的默认值是true,表示始终可以利用URLConnection读取一个web资源,doOutput的默认值是false,表示URLConnection不能写入,为了能够用URLConnection对象进行写入,需要将doOutput的值设置为true。为doInput和doOutput设置值的时候,可利用setDoInput和setDoOutput方法完成。

利用URLConnection对象读取资源时,可调用他的getInputStream方法,该方法返回java.io.InputStream对象。写入资源时,可调用他的getOutputStream方法,该方法返回java.io.OutputStream。

URLConnection比URL.openStream更强大,还可以读取响应标头,并把数据写入服务器。

 

虽然可以利用URLConnection提交信息,但是可利用更加强大的java.net.Socket和java.net.ServerSocket类。

 基于TCP的Socket编程 

服务器程序的编写

调用ServerSocket(int port)创建一个服务器端套接字,并绑定指定端口上;调用accept(),监听连接请求,如果客户端请求连接,则接受连接,返回通信套接字。调用Socket类的getOutputStream()getInputStream获取输出流和输入流,开始网络数据的发送和接收。最后关闭通信套接字。

客户端程序的编写

调用Socket()创建一个流套接字,并连接到服务器端; 调用Socket类的getOutputStream()getInputStream获取输出流和输入流,开始网络数据的发送和接收。 最后关闭通信套接字。

基于UDP的Socket编程

接收端程序的编写

调用DatagramSocket(int port)创建一个数据报套接字,并绑定到指定端口上;调用DatagramPacket(

byte[] buf, int length),建立一个字节数组以接收UDP调用DatagramSocket类的receive(),接收UDP包。最后关闭数据报套接字。

发送端程序的编写

调用DatagramSocket()创建一个数据报套接字; 调用DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)建立要发送的UDP包。 调用DatagramSocket类的send(),发送UDP包。最后关闭数据报套接字。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值