Socket编程封装的类

来源:互联网 发布:做浮雕的软件 编辑:程序博客网 时间:2024/05/22 10:29

Java为Socket编程封装了几个重要的类。

1.1 Socket类

Socket类实现了一个客户端socket,作为两台机器通信的终端,默认采用的传输层协议为TCP,是一个可靠传输的协议。Socket类除了构造函数返回一个socket外,还提供了connect, getOutputStream, getInputStream和close方法。connect方法用于请求一个socket连接,getOutputStream用于获得写socket的输出流,getInputStream用于获得读socket的输入流,close方法用于关闭一个流。

1.2 DatagramSocket类

DatagramSocket类实现了一个发送和接收数据报的socket,传输层协议使用UDP,不能保证数据报的可靠传输。DataGramSocket主要有send, receive和close三个方法。send用于发送一个数据报,Java提供了DatagramPacket对象用来表达一个数据报。receive用于接收一个数据报,调用该方法后,一直阻塞接收到直到数据报或者超时。close是关闭一个socket。

1.3 ServerSocket类

ServerSocket类实现了一个服务器socket,一个服务器socket等待客户端网络请求,然后基于这些请求执行操作,并返回给请求者一个结果。ServerSocket提供了bind、accept和close三个方法。bind方法为ServerSocket绑定一个IP地址和端口,并开始监听该端口。accept方法为ServerSocket接受请求并返回一个Socket对象,accept方法调用后,将一直阻塞直到有请求到达。close方法关闭一个ServerSocket对象。

1.4 SocketAddress

SocketAddress提供了一个socket地址,不关心传输层协议。这是一个虚类,由子类来具体实现功能、绑定传输协议。它提供了一个不可变的对象,被socket用来绑定、连接或者返回数值。

1.5 InetSocketAddress

InetSocketAddress实现了IP地址的SocketAddress,也就是有IP地址和端口号表达Socket地址。如果不制定具体的IP地址和端口号,那么IP地址默认为本机地址,端口号随机选择一个。

1.6. DatagramPacket

DatagramSocket是面向数据报socket通信的一个可选通道。数据报通道不是对网络数据报socket通信的完全抽象。socket通信的控制由DatagramSocket对象实现。DatagramPacket需要与DatagramSocket配合使用才能完成基于数据报的socket通信。

1. 7 InputStream getInputStream() 从socket中获取输入流
1.8 OutputStream getOutputStream() 从socket中获取输出流
1.9 int getLocalPort() 获取本地的端口,端口用于监听服务器端的返回值,如果没绑定则为-1
2.0 int getPort() 获取连接的服务器端的连接端口,如果没连接则为0
2.1 InetAddress getInetAddress() 获取另一端的IP地址,toString后为/加上IP地址。
2.2 InetAddress getLocalAddress() 获取本地的IP地址,toString后如:/10.0.11.204
2.3 SocketAddress getRemoteSocketAddress()获取另一端的IP和端口,toString后如:/10.0.11.204:8808
2.4 SocketAddress getLocalSocketAddress() 获取本地的IP和端口,toString后如:/10.0.11.204:3513
2.5 Int getReceiveBufferSize() 获取接收端Socket的缓冲大小,默认是8kb.有get就有set。
2.6 Boolean isBound 是否此套接字绑定到本地地址和端口

0 0
原创粉丝点击