Java Socket编程总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Socket编程总结相关的知识,希望对你有一定的参考价值。
一、网络API
InetAddress 用于标识网络上的硬件资源,主要是IP地址
URL 统一资源定位符,通过URL可以直接读取或写入网络上的数据
Sockets 使用TCP协议实现的网络通信Socket相关的类
Datagram 使用UDP协议,将数据保存在用户数据报中,通过网络进行通信。
二、地址
A、InetAddress ip地址
(1)静态方法
- getLocalHost() InetAddress
- getByName(String host) InetAddress
- getAllByName(String host) InetAddress[]
- getByAddress(byte[] addr) InetAddress
- getByAddress(String host, byte[] addr) InetAddress
(2)成员方法
- getAddress() byte[]
- getCanonicalHostName() String
- getHostAddress() String
- getHostName() String
- isAnyLocalAddress() boolean
- isMulticastAddress() boolean
- isReachable(int timeout) boolean
B、InetSocketAddress socket地址
(1)构造方法
- InetSocketAddress(InetAddress addr, int port) 根据 IP 地址和端口号创建套接字地址。
- InetSocketAddress(int port) 创建套接字地址,其中 IP 地址为通配符地址,端口号为指定值。
- InetSocketAddress(String hostname, int port) 根据主机名和端口号创建套接字地址。
(2)成员方法
getAddress() InetAddress 获取 InetAddress。
getHostName() String 获取 hostname。
getPort() int 获取端口号。
(4)静态方法
createUnresolved(String host, int port) InetSocketAddress 根据主机名和端口号创建未解析的套接字地址。
三、Socket
(1)构造方法
- Socket() 通过系统默认类型的 SocketImpl 创建未连接套接字
- Socket(InetAddress address, int port) 创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
- Socket(InetAddress address, int port, InetAddress localAddr, int localPort) 创建一个套接字并将其连接到指定远程地址上的指定远程端口。
- Socket(Proxy proxy) 创建一个未连接的套接字并指定代理类型(如果有),该代理不管其他设置如何都应被使用。
- Socket(String host, int port) 创建一个流套接字并将其连接到指定主机上的指定端口号。
- Socket(String host, int port, InetAddress localAddr, int localPort) 创建一个套接字并将其连接到指定远程主机上的指定远程端口。
(2)成员方法
1)关联地址
- bind(SocketAddress bindpoint) void 将套接字绑定到本地地址。
- connect(SocketAddress endpoint) void 将此套接字连接到服务器。
- connect(SocketAddress endpoint, int timeout) void 将此套接字连接到服务器,并指定一个超时值。
- isBound() boolean 返回套接字的绑定状态。
- isConnected() boolean 返回套接字的连接状态。
2)获取IP地址
- getInetAddress() InetAddress 返回套接字连接的地址。
- getLocalAddress() InetAddress 获取套接字绑定的本地地址。
- getPort() int 返回此套接字连接到的远程端口。
- getLocalPort() int 返回此套接字绑定到的本地端口。
- getLocalSocketAddress() SocketAddress 返回此套接字绑定的端点的地址,如果尚未绑定则返回 null。
- getRemoteSocketAddress() SocketAddress 返回此套接字连接的端点的地址,如果未连接则返回 null。
3)获取数据
- getInputStream() InputStream 返回此套接字的输入流。
- getOutputStream() OutputStream 返回此套接字的输出流。
- getChannel() SocketChannel 返回与此数据报套接字关联的唯一 SocketChannel 对象(如果有)。
4)设置缓冲区
- setReceiveBufferSize(int size) void 将此 Socket 的 SO_RCVBUF 选项设置为指定的值。
- setSendBufferSize(int size) void 将此 Socket 的 SO_SNDBUF 选项设置为指定的值。
5)重用端口
- setReuseAddress(boolean on) void 启用/禁用 SO_REUSEADDR 套接字选项。
- getReuseAddress() boolean 测试是否启用 SO_REUSEADDR。
6)关闭
- close() void 关闭此套接字。
- isClosed() boolean 返回套接字的关闭状态。
四、ServerSocket
(1)构造方法
以上是关于Java Socket编程总结的主要内容,如果未能解决你的问题,请参考以下文章