TCP协议API
前言
原本是想好好的学习一下TCP协议的,但是看着课程好像不是我所想的,就是里面的部分API,以及穿插了一个项目,再加上时间比较紧,这一次就先记录一下这些API,到时候有时间了再系统学习一下TCP协议的相关知识。
TCP协议
java.net.Socket
封装了TCP协议,使用它就可以基于TCP协议进行网络通信。
Socket是运行在客户端的。
Socket
public Client() throws Exception{
socket = new Socket("localhost",8188);
}
初始化socket时需要传入两个参数。
- 服务端地址:通过IP地址可以找到服务端的计算机。
- 服务端端口:通过端口可以找到服务端计算机上的服务端应用程序
实例化socketdd额过程就是链接的过程,若远程计算机没有响应就会抛出异常。
ServerSocket
运行再服务端的ServerSocket主要责任:
- 向系统申请服务端口。客户端就是通过这个端口与之连接
- 监听申请的服务端口。当一个服务端通过该端口尝试建立连接时,ServerSocket会在服务端创建一个Socket与客户端建立连接。
初始化ServerSocket
serverSocket = new ServerSocket(8188);
accept
Socket socket = serverSocket.accept();
accept方法是一个阻塞方法,作用时监听服务端口,直到一个客户端连接并创建一个Socket,使用该socket即可与刚连接的客户端进行交互。
getOutputStream
获取一个字节输出流,通过该流写出的数据会被发送至远端计算机
OutputStream os = socket.getOutputStream();
getInputStream
获取一个输入流,通过该流可以获取从远端发来的数据
InputStream is = socket.getInputStream();
getInetAddress()
通过socket可以获取远端计算机t的地址信息
InetAddress address = socket.getInetAddress();
host = address.getHostAddress();//获取ip地址