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编程总结的主要内容,如果未能解决你的问题,请参考以下文章

网络编程之socket异常总结

java 网络编程(Socket) TCP/UDP 总结案例

java中进行socket编程实现tcpudp协议总结

java中进行socket编程实现tcpudp协议总结

Java 网络编程

socket编程TCPUDP通信总结