码迷,mamicode.com
首页 > 其他好文 > 详细

网络编程

时间:2016-08-16 13:13:16      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

网络基础知识

所谓计算机网络,就是把分布在不同地理区域的计算机和专门的外部设备用通信线路互联成一个规模大、功能强的网络系统。从而使众多计算机可以方便的互相传递信息,共享硬件、软件、数据信息等资源。

计算机网络主要提供的功能:资源共享、信息传输与集中处理、均衡负荷与分布处理、综合信息服务。

计算机网络按照规模大小和延伸范文分类:局域网(LAN),城域网(MAN)、广域网(WAN),Integer可以视为世界上最大的广域网。

按照网络拓扑结构分:星型网络、总线型网络、环型网络、树型网络、星型环型网络等。按照网络传输介质分:双绞线网、同轴电缆网、光纤网和卫星网等。

计算机网络实现通信的约定称为通信协议。通信协议赋负责对传输速率、传输代码、代码结构、传输控制步骤、出错控制等制定处理标准。

通信协议主要由三个部分组成:一:语义部分,用于决定双方对话的类型;二、语法部分,用于决定双方对话的格式;三:变换规则,用于决定通信双薪对话的应答关系。

IP地址是一个32位整数,通常分为4个8位的二进制,每个8位整数可以转换成0~255的十进制整数

端口是16位整数,端口是应用程序与外界交流的出入口,同一台机器上不能有两个程序使用同一个端口。端口号可以是0到65535之间的数字,分为三类:1、公认端口:从0到1023,他们紧密绑定一些特定的服务;2、注册端口,从1024到49151,它们松散地绑定一些服务。应用程序通常应该使用这个范围内的端口;3、动态和/或私有端口:从49152到65535,这些端口是应用程序使用的动态端口,应用程序一般不会主动使用这些端口。

Java基本的网络支持

Java为网络支持提供了java.net包,该包下的URL和URLConnection等类提供了以编程方式访问Web服务的功能,而URLDecoder和URLEncoder则提供了普通字符串和application/x-www-form-urlencode MIME字符产相互转换的静态方法。

Java提供了InetAddress类代表IP地址,InetAddress下有两个子类:Inet4Address和Inet6Address,分别代表IPV4地址和IPV6地址。

InetAddress没有提供构造器,而是提供了两个静态方法获取InetAddress实例:

getByName(String host):根据主机获取对应的InetAddress对象
getByAddress(byte[] byte):根据原始IP地址来获取对应的InetAddress对象

 

还提供了几个方法获取InetAddress实例对应的IP地址和字符串(以字符串的形式):

String getCanonicalHostName():获取此IP地址的全限定域名
String getHostAddress():返回该InetAddress实例对应的IP地址字符串(以字符串形式)
String getHostName():获取此IP地址的主机名
boolean isReachable():测试是否是可以到达地址
import java.net.*;
public class InetAddressTest{
    public static void main(String[] args) throws Exception{
        InetAddress it1 = InetAddress.getByName("www.163.com");
        //判断是否可达
        System.out.println(it1.isReachable(2000));
        }
    }

URLDecoder和URLEncoder用于完成普通字符串和application/x-www-form-urlencode MIME字符串直接的转换。

URLDecpder类包含一个decode(String s, String enc)静态方法,它可以将看上去是乱码的特殊字符转换成普通字符串

URLEncoder类包含一个encode(String s, String enc)静态方法,可以将普通字符串转换成application/x-www-form-urlencode MIME字符串

仅包含西欧字符的普通字符串和application/x-www-form-urlencode MIME字符串无须转换,而包含中文字符的普通字符串则需要转换,转换方法是每个中文字符占两个字节,每个字节可以转换成两个十六进制的数字。采用不同的字符集,每个中文字符对应的字节数并不完全相同,所以使用URLDecoder和URLEncoder需要指定字符集。

 

URL、URLConnection和URLPermission

URL对象代表统一资源定位器,它是指向互联网“资源”的指针。资源可以使简单的文件或目录,也可以是对更为复杂对象的引用:例如数据库搜索引擎的查询。

URL可以由协议名、主机、端口和资源组成,即满足如下格式:

protocol://host:port//resourceName

例如:

http://www.crazyit.org/index.php

JDK提供了URI类,其实例代表一个统一资源的标识符,Java的URI不能用于定位任何资源,只能用于解析。

URL包含一个可打开到达资源的输入流,可以将URL理解成URI的特例。

URL类提供了多个构造器用于创建URL对象,一旦获得URL对象就可以调用方法访问该URL对应的资源:

String getFile():获取该URL的资源名
String getHost():获取该URL的主机名
String getPath():获取该URL的路径部分
int getPort():获取该URL的端口号
String getProtocol():获取该URL的协议名称
String getQuery():获取该RUL的查询字符串部分
URLConnection openConnection():返回一个URLConnection对象,它代表了一个与URL所引用的远程对象的连接
InputStream openStream():打开与此URL的连接,并返回一个用于读取该URL资源的InputStream

Java8新增了URLPermission工具类,用于管理HttpURLConn的权限问题。

http://www.cnblogs.com/springcsc/archive/2009/12/03/1616413.html

 

网络编程

标签:

原文地址:http://www.cnblogs.com/changzuidaerguai/p/5775935.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!