Java网络编程

一、TCP编程原理

1. 服务器与客户端交互过程如下:

1) 服务器程序创建一个ServerSocket,调用accept()方法等待客户机来连接;

2) 客户端程序创建一个Socket,请求与服务器建立连接;

3) 服务器接收客户机的连接请求,同时创建一个新的Socket与客户建立连接。服务器继续等待新的请求。

2. TCP编程的常用类

1) InetAddress

Java.net包中的InetAddress类对象包含一个Internet主机地址的域名和IP地址。

InetAddress的构造函数不是公开的(public),所以需要通过它提供的静态方法来获取,有以下的方法:

static InetAddress[] getAllByName(String host)

static InetAddress getByAddress(byte[] addr)

static InetAddress getByAddress(String host,byte[] addr)

static InetAddress getByName(String host)

static InetAddress getLocalHost()

InetAddress类是IP地址封装类,同时它也是一个比较奇怪的类——没有公共的构造方法,程序员只能利用该类的一些静态方法来获取对象实例,然后再通过这些对象实例来对IP地址或主机名进行处理。该类的常用方法有:

public String getHostAddress()

public String getHostName()

2) ServerSocket

该类用来给服务器端建立套接字。它的主要功能是等待来自网络上的“请求”,它可通过指定的端口等待连接的套接字。

3) Socket

客户机创建了Socket对象后,会向指定的IP地址及端口尝试连接。服务器套接字会创建新的套接字,与客户端套接字建立连接。服务器端套接字与客户端套接字成功连接后,则可以获取套接字的输入输出流,进行数据交换。

二、UDP编程原理

1. UDP程序的步骤

发送数据包执行顺序为:

1) 使用DatagramSocket()创建一个数据包套接字;

2) 使用DatagramPacket(byte[] buf,int offset,int length,InetAddress address,int port)创建要发送的数据包;

3) 使用DatagramSocket类的send()方法,发送数据包。

接收数据包执行顺序为:

1) 使用DatagramSocket(int port)创建数据包套接字,绑定到指定的端口;

2) 使用DatagramPacket(byte[] buf,int length)创建字节数组,接收数据包;

3) 使用DatagramPacket类的receive()方法,接收UDP包。

2. UDP编程的常用类

1) DatagramSocket

该类建立UDP程序的套接字

2) DatagramPacket

该类表示数据报包,负责UDP的数据传送。

你可能感兴趣的:(Java网络编程)