1.java.net.Socket;套接字、封装了TCP通讯协议,使用它可以基于TCP与远端计算机上的服务端应用程序链接并进行通讯。
实例化Socket就是与服务器端建立连接的过程。这里需要传入两个参数来指定服务端地址信息:
参数1:服务器端计算机地址
参数2:运行在服务器计算机上的服务端应用程序打开的服务端口
通过IP可以找到服务端计算机,在通过端口可以连接到运行在服务端极端及上的服务端应用程序。由于实例化就是连接过程,若服务端咩有响应,这里实例化Socket会抛出异常。
Socket提供方法:
OutputStream getOutputStream()
通过Socket获取的输入流写出的字节都会通过网络发送给远端计算机。这里就等于发送给服务端。
2. 运行在服务端的java.net.ServerSocket;
主要有两个作用:
1.向系统申请对外的服务端口,客户端Socket就是通过这个端口与服务器程序建立连接的。
2.监听该服务端口,一旦一个客户端Socket通过该端口尝试建立连接,serverSocket就会感知并实例化一个Socket与该客户端进行通讯。
ServerSocket提供方法:
Socket accept()
该方法时一个阻塞方法,用于监听服务端口,直到一个客户端连接上为止。这里会返回一个Socket,通过这个Socket就可以与客户端进行通讯了。
通过Socket获取输入流,读取的数据就是来自远端计算机发送过来的数据。这里相当于读取的时客户端发送过来的数据;
InputStream in = socket.getInputStream();
当使用缓冲流读取一行来自客户端发送过来的字符串过程中,br.readLine方法会一直阻塞直到客户端断开连接,那么客户端的系统不同这里的反应也不同。当Windows的客户端断开时,方法会抛出异常当Linux的客户端断开时方法会返回null
Atas ialah kandungan terperinci Java中关于Socket的方法与作用详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!