网络通信1
来源:互联网 发布:玄界之门 知乎 编辑:程序博客网 时间:2024/04/29 20:23
最近感觉网络通信蛮好玩的,所以想学一下网络通信,从最基本的开始吧!
首先了解url,url是统一资源定位符,用于在internet上指定信息资源的地址。url的基本结构如下:
协议://主机【:端口】【/文件】【#引用】
url支持HTTP,FILE,FTP等多种协议
(1)创建url对象
java提供url类类表示url地址。url类及其构造方法声明如下:
public final class URL implements java.io.Seriazable
{
public URL(String spec)throw MalformedURLException
public URL(String protocol,String host,String file)throws MalformedURLException
public URL(String protocol,String host,int port,String file)throws MalformedURLException
其中,参数spec指定一个完整的url地址;protocol 指定协议;host指定主机,本机的主机名默认为localhost,本机的ip地址用127.0.0.1指代,并非本机实际ip地址;】指定端口;FILE制定文件名;
例如:URL urll=new URL("file://localhost/C:/program Files/Java/doc.html");
URL urll=new URL("http://www.edu.cn");
URL urll=new URL("http://","www.myweb.edu.cn",8080,"/web/myfile.html");
FILE 协议定位在局域网或匿名服务器上的文件。当url使用file协议时,表示本机文件系统;当url使用http协议时,表示网络上的某个文件。
(2)获得url对象属性
url对象提供获得url对象的协议,主机,端口,文件和引用字符串等属性的方法,声明如下:
pulic string tostring() //获得完整url地址字符串
public string getorocol() //获得url对象的协议名
public int getport() //获得url对象的端口号
public int getdefultport() //获得url对象的默认端口号
(3)使用流获得url资源内容
一个url对象仅仅代表一个网络资源,获取资源的内容的操作需要使用流,url类提供openstream()方法返回一个字节输入流对象,声明如下:
public final inputstream openstream()throw java.io.ioexception //返回字节输入流对象
他将返回一个字节输入流对象,该对象连接着一条和资源通信的通道,于是,访问资源内容的操作转化为使用输入流的对象操作,即从字节输入流中读取数据资源。
2.urlconnection类
一个file对象表示一个文件,一个字符串指定一个文件名,通过file对象可以获得指定文件的各种属性。与此类似,一个url地址表示在internet上的一个文件名,一个java.net.urlconnection对象表示internet上的一个文件,文件名由url地址指定,通过该文件对象可以获得指定文件的各种属性,而读取文件的内容仍然由流实现
(1)urlconnection 类声明
urlconnection 类只支持http协议,uroconnection类及其声明方法如下:
public abstract class urlconnection
{
public url geturl() //返回当前连接的url对象
pulic int getcontentlength() //返回资源文件的长度
public string getcontenttype() //返回资源文件的类型
public long getlastmodified() //返回资源文件最后修改日期
(2)使用url类的openconnection方法创建一个urlconnection对象
urlconnection类是抽象类,创建一个urlconnection对象的操作由url类的openconnection()方法实现。声明如下:
public urlconnection openconnection()throw java.io.ioexception
3.inetaddress类
inetaddress类表示internet上一台计算ip地址,提供将主机名解析其为ip地址的方法。声明如下:
public static InetAddress getlocalhost()throws unknownhostexception //返回本地主机
public static gethostaddress() //返回ip地址字符串
public static gethostname() //返回主机名
InetAddress 类没有构造方法,由静态方法 getByName().getByAddress(),getlocalhost()等返回inetaddress实例,host参数指定参数主机名,如java.sun.com或ip地址字符串;addr参数指定分段的ip地址,要检查地址格式是否有效。再由inetaddress实例调用gethostaddress,gethostname(),返回ip地址或主机名。例如:
inetaddress.gethostname("java.sun.come").gethostaddress() //返回指定主机名的ip地址字符串
inetaddress.getlocalhost().gethostaddress() //返回本机的ip地址字符串
主机名到ip地址的解析,通过使用本机机器配置信息和网络命名服务(如域名系统dns,网络信息服务NIS)来实现。
inetaddress类的子类inet6Address使用ipv6格式地址。
.
- android网络通信1
- 网络通信1
- unity网络通信1
- 网络通信1-URL
- 网络通信1
- 网络通信(1)
- 网络通信编程心得(1)
- Android开发-网络通信1
- 网络编程1----TCP通信
- BOOST UDP 网络通信(1)
- 网络通信
- 网络通信
- 网络通信
- 网络通信
- 网络通信
- 网络通信
- 网络通信
- 网络通信
- document.write和document.documentElement.innerHTML的一个区别
- DOS下创建文件、文件夹
- 软件测试v2.0
- AndroidUI组件之ProgressBar
- struts.properties
- 网络通信1
- C++异常机制详解
- word 技巧
- C# 反射对象的字段属性和实现的接口
- 【算法拾遗】大数相加(不开辟额外空间)
- valgrind使用
- 设计模式入门之状态模式State
- 对一个sql的理解
- <jsp:setProperty>