JAVA中的Socket用法

一、普通Socket用法

HTTP协议是应用层的协议,在TCP/IP协议接收到数据之后需要通过HTTP协议来解析才可以使用。就像过去的发电报一样,电报机就相当于Socket,负责选好发送的目标并将内容发过去,但是直接发过去的数据“嘀嘀嘀”并不能直接使用,还需要解码(在发送前需要先编码再发送)后才能用,电报中的编码和解码就相当于网络传输中的HTTP协议。

Java中的网络通信是通过Socket实现的,Socket分为ServerSocket和Socket两大类,ServerSocket用于服务端,可以通过accept方法监听请求,监听到请求后返回Socket,Socket

用于具体完成数据传输,客户端直接使用Socket发起请求并传输数据。


ServerSocket的使用可以分为三步:
1)创建ServerSocket。ServerSocket的构造方法一共有5个,用起来最方便的是Server-Socket (int port), 只需要一个 port (端口号) 就可以了。
2)调用创建出来的ServerSocket的accept方法进行监听。accept方法是阻塞方法,也就是说调用accept方法后程序会停下来等待连接请求,在接收到请求之前程序将不会往下走,当接收到请求后accept方法会返回一个Socket。
3)使用accept方法返回的Socket与客户端进行通信。

JAVA中的Socket用法_第1张图片

以上是自理解图(可能有错)

客户端上的使用
1.getInputStream方法可以得到一个输入流,客户端的Socket对象上的getInputStream方法得到输入流其实就是从服务器端发回的数据。
2.getOutputStream方法得到的是一个输出流,客户端的Socket对象上的getOutputStream方法得到的输出流其实就是发送给服务器端的数据。

服务器端上的使用
1.getInputStream方法得到的是一个输入流,服务端的Socket对象上的getInputStream方法得到的输入流其实就是从客户端发送给服务器端的数据流。
2.getOutputStream方法得到的是一个输出流,服务端的Socket对象上的getOutputStream方法得到的输出流其实就是发送给客户端的数据。



你可能感兴趣的:(计算机基础)