网络编程 | Socket编程

x33g5p2x  于2021-12-06 转载在 其他  
字(1.6k)|赞(0)|评价(0)|浏览(476)

socket编程

服务端流程:

  1. 服务端需要先启动ServerSocket实例
  2. 绑定端口
  3. 等待客户端的连接
  4. 进行读写操作
  5. 关闭资源

服务端(Server.java):

  1. public class Server {
  2.    public static void main(String[] args) {
  3.        ServerSocket serverSocket = null;
  4.        try {
  5.            //创建ServerSocket实例
  6.            serverSocket = new ServerSocket();
  7.            //绑定端口
  8.            serverSocket.bind(new InetSocketAddress(6666));
  9.            System.out.println("服务端启动成功啦");
  10.            //等待客户端的连接:accept(),获取用户的连接是socket,进行读写操作的是socket,不是ServerSocket
  11.            Socket socket = serverSocket.accept();
  12.            System.out.println("有客户端连接啦");
  13.            //读写操作,获取客户端的输出流
  14.            InputStream inputStream = socket.getInputStream();
  15.            byte[] bytes = new byte[100];
  16.            int len = 0;
  17.            while ((len = inputStream.read(bytes)) != -1) {
  18.                System.out.println("客户端发送消息:"+new String(bytes,0,len));
  19.           }
  20.            System.out.println("服务端关闭啦");
  21.            //关闭资源
  22.            socket.close();
  23.            inputStream.close();
  24.       } catch (IOException e) {
  25.            e.printStackTrace();
  26.       } finally {
  27.            if (serverSocket != null) {
  28.                try {
  29.                    serverSocket.close();
  30.               } catch (IOException e) {
  31.                    e.printStackTrace();
  32.               }
  33.           }
  34.       }
  35.   }
  36. }

客户端的流程:

  1. 创建Socket实例
  2. 连接服务端Connect(服务端的IP+端口 “localhost/127.0.0.1/192.168.43.11”)
  3. 进行读写操作
  4. 关闭资源

客户端(Client.java):

  1. public class Client {
  2.   public static void main(String[] args) {
  3.       Socket socket = null;
  4.       try {
  5.           //创建socket实例
  6.           socket = new Socket();
  7.           //连接服务端 :connect
  8.           socket.connect(new InetSocketAddress("127.0.0.1", 6666));
  9.           System.out.println("连接服务端成功");
  10.           //读写操作
  11.           OutputStream outputStream = socket.getOutputStream();
  12.           outputStream.write("网络编程".getBytes());
  13.           System.out.println("客户端已发送数据");
  14.       } catch (IOException e) {
  15.           e.printStackTrace();
  16.       } finally {
  17.           //关闭资源
  18.           if (socket != null) {
  19.               try {
  20.                   System.out.println("关闭资源");
  21.                   socket.close();
  22.               } catch (IOException e) {
  23.                   e.printStackTrace();
  24.               }
  25.           }
  26.       }
  27.   }
  28. }

以上都是学习过程中的总结,会持续更新,如果有错误或者有疑问,欢迎一起交流吖~~

相关文章