java socket是一种client-server模式的编程,是以socket实现client与server间的连接。
建立连接需要如下资源
- 远程计算机的计算机名称或ip地址
- 试图连接的端口号
java.net包中定义的两个类Socket和ServerSocket分别用来实现双向连接的client端和server端
ServerSocket:它是一种阻塞式的,在启动之后就阻塞在那里等待客户端来连接
socket编程的基本步骤:
- 建立网络连接。
- 打开连接到socket i/o流。
- 通过已经打开的i/o流进行数据的读写操作。
- 关闭已经打开的i/0流和socket
java nio:它是一种非阻塞式的io操作
java nio的常用类
- SocketChannel
- ServerSocketChannel
- Selector
- ByteBuffer
一个基于tcp的服务端程序必然有一个监听端和若干个通信端,他们在java nio中有对应的ServerSocketChannel和SocketChannel类来实现,为了达到异步io操作的目的需要Selector类来检测io对象的状态。