java中的网络编程学习笔记

Java编程中提供了强大的网络编程功能,能够处理各种网络资源,以及进行网络通信。Java.net包定义了java语言网络编程的主要工具类。其中,包括代表网络IP地址的InetAddress类;与URL有关的URL类,和URLConnection类;与网络通信有关的Socket类和ServerSocket类。协议是实现信息通信的重要手段,通俗的讲:就是不同对象之间沟通时遵循的原则和规则。TCP(传输控制协议),IP(Inernet协议),UDP(用户数据报协议)

1、什么是网络编程

  Java语言提供了强大的网络编程功能,能够处理各种网络资源以及进行网络通信,这些网络功能都包含在java.net包中。

Net包的内容大体分为3类:

1):网络资源类:URL是资源的表达方式,在java.net包中主要通过URLInetAddress类来表示和操作网络中的资源。

2)Socket(套接字)类:Socket(套接字)用来实现网络编程中客户端和服务器的连接。Java.net包定义的Socket类和ServerSocket类分别代表通信双方的客户端和服务器端。

3)Datagram(数据报)类:Datagram类以数据报的形式实现网络通信,是基于无连接的UDP协议的一种网络通信方式。

2、InetAddress

   InetAddress类用来表示网络上的IP地址。网络中的每台主机采用IP地址进行标识,java语言中的InetAddress类对IP地址进行封装,该类提供了操作IP地址的各种方法,类本身没有构造函数,而是通过调用相关静态方法获取实例。InetAddress类中定义的主要方法如下:

equels(Object obj):将此对象与指定对象比较。

getAddress():返回此InetAddress对象的原始IP地址。

getAllByName(String host):在给定主机名的情况下,根据系统上配置的名称,服务返回其IP地址所组成的数组。

getByAddress(byte[] addr):在给定原始IP地址的情况下,返回InetAddress对象

getHostName():获取IP地址的主机名。

getHostAddress():返回IP地址字符串。

getLocalHost():返回本地主机。

hashCode():返回此IP地址的哈希吗。

toString():将此IP地址转化为String

其他方法请查阅API 文档。

3、URL编程

   Java.net包中定义了URLURLConnection类来处理有关URL的内容。

协议是实现信息通信的重要手段。

 URL:是统一资源定位符的简称,用于表示Internet上某一资源的地址。浏览器通过解析给定的URL可以查找网络上的这些资源,格式如下:

网络传输协议(protocol):资源名(resourceName)

参数protocol表示网络传输协议,如;httpftp等。

参数resourceName表示完整的资源名,又可以分为主机名、端口号、和文件几个部分。

例如:http://www.sina.com.cn

对于大部分协议,主机名和文件名同城是必须的,而端口号有时可以省略。

1)、创建URL

  URL类的构造函数有一下几种:

URI(String str)  通过解析给定的字符串构造一个 URI。

URI(String protocolString host, String file)  

使用指定的协议,主机名,文件名创建。

URI(String protocolString host, int portString file) 

使用指定的协议,主机名,端口号,及文件名创建

URI(String contextString spes):使用基地址和相对URL创建 

2)、使用URL

  URL类主要的方法请查阅API文档

3)URLConnection

  在java.net包中定义了URLConnction类,该类用来表示与URL建立通信连接。URLConnection类的实例通过调用URL类的openConnetion()方法获得。主要方法请查阅API文档。

4、Socket编程

基于TCP协议的Socket编程:在TCP协议中,对于一个特定连接,要求每台计算机都有一个Socket用做通信的输入输出端口。

在创建Socket对象时,作为服务器端的程序与作为客户端的程序采用的类是不同的,服务器端用ServerSocket类创建Socket对象,客户端则用Socket类创建Socket对象。

  Socket类:表示套接字,在客户端创建的Socket对象与服务器端创建的Socket对象连接后即形成信息通道。

  ServerSocket类:描述网络服务器。ServerSocket对象表示建立一个网络服务器去等待接收由客户端传来的请求。

 

TCP协议下的Socket网络通信过程:

 TCP协议下的Socket通信首先从服务器端创建一个指定端口号的ServerSocket对象开始,接着运行ServerSocket对象的accept()方法等待客户端的请求,以便建立连接。在ServerSocket对象等待的过程中,如果客户端创建一个指向服务器端计算机和服务器端指定端口的Socket对象,且这个Socket对象想服务器端发出连接请求,那么ServerSocket对象就会接收到请求信息。当ServerSocket对象收到请求信息后紧接着会在本地创建一个Socket对象与客户端的Socket对象进行连接,从而让形成通道,

连接建立后,服务器端和客户端可分别建立输入/输出数据流进行数据传输。当通信结束后,需要关闭两端的Socket连接。最后,ServerSocket对象调用close()方法停止等待客户端请求。

 感谢来访,有写的不好或者不对的地方,希望您能提出宝贵意见和建议,多多交流!

  

 

你可能感兴趣的:(java,工作,socket,通信,学习)