4. Socket编程
4.1 socket的基本步骤
创建 Socket 连接时,可以指定使用的传输层协议,Socket 可以支持不同的传输层协 议(TCP 或 UDP),当使用 TCP 协议进行连接时,该 Socket 连接就是一个 TCP 连接。 Server 端所要做的事情主要是建立一个通信的端点,然后等待客户端发送的请求。典型的处理步骤如下:(服务器端建立连接过程)。
1、构建一个 ServerSocket 实例,指定本地的端口。这个 socket 就是用来监听指定端口的 连接请求的。
2、重复以下步骤:
a. 调用 socket 的 accept()方法来获得下面客户端的连接请求。通过 accept()方法返回的 socket 实例,建立了一个和客户端的新连接。
b.通过这个返回的 socket 实例获取 InputStream 和 OutputStream,可以通过这两个 stream 来分别读和写数据。
c.结束的时候调用 socket 实例的 close()方法关闭 socket 连接。
(客户端建立连接的过程如下):
1.构建 Socket 实例,通过指定的远程服务器地址和端口来建立连接。
2.通过 Socket 实例包含的 InputStream 和 OutputStream 来进行数据的读写。
3.操作结束后调用 socket 实例的 close 方法,关闭。
客户端的socket通信代码如下:
public class Client {
public static void main(String args[]) {
try {
Socket socket = new Socket("127.0.0.1",4700); // 向本机的 4700 端口发出客户请求
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
// 由系统标准输入设备构造 BufferedReader 对象
PrintWriter os = new PrintWriter(socket.getOutputStream());
// 由 Socket 对象得到输出流,并构造 PrintWriter 对象
BufferedReader is = new BufferedReader(new InputStreamReader(socket .getInputStream()