JAVA中-面向网络编程---单层交互

时间:2021-07-25 17:19:30

面向网络编程---单层交互:

客户端说明:

  1. /*
  2. * 实现TCP客户端,链接到服务器
  3. * 和服务器实现数据交互
  4. * 实现TCP客户端的类 java.net.Scoket
  5. * 构造方法:
  6. * Socket sco = new Sockte( String ip ,int 端口号);
  7. * 注意:这个构造方法只要运行就会去查找 服务器 如果链接失败 就会抛出异常
  8. * OutputStream getOutputStream() 这个方法是返回套接字的输出流
  9. * 注意:这个输出流 是将数据 输出服务器
  10. * InputStream getInputStream(); 这个方法 返回 套接字的输入流
  11. * 注意: 这个输入流 从服务器中读取数据
  12. *
  13. * 如果要实现 客户端与服务器端的交互 必须有使用Socket套接字的 流 自己实例化的流不可以!!!
  14. *
  15. * */

客户端代码:

  1. public static void main(String[] args) throws Exception {
  2. //创建Socket 对象 链接服务器
  3. Socket socket = new Socket("127.0.0.1", 8888);
  4. //通过套接字 对象Socket 获取 输出流 将 数据写入服务器
  5. OutputStream out = socket.getOutputStream();
  6. //向服务器写入数据
  7. out.write("咕咕咕-买了否冷".getBytes());
  8. //关闭数据
  9. //socket.close();
  10. socket.shutdownOutput();
  11. }

服务器说明:

  1. /*
  2. * 实现TCP服务器程序
  3. * 表示服务器程序的类 java.net.ServerSocket
  4. * 构造方法:
  5. * ServerSocket(int 端口);
  6. * **必须要获得客户端的套接字对象 Socket
  7. * Socket socket = server.accept();
  8. * */

服务器代码:

    

  1. public static void main(String[] args) throws Exception{
  2. //创建ServerSocket 对象
  3. ServerSocket server = new ServerSocket(8888);
  4. //调用服务器套接字 对象 中的方法accept();
  5. Socket socket = server.accept();
  6. try {
  7. InputStream in = socket.getInputStream();
  8. int len = 0;
  9. byte[] bytes = new byte[1024];
  10. while((len = in.read(bytes)) != -1){
  11. System.out.println(new String(bytes, 0, len));
  12. }
  13. } catch (Exception e) {
  14. throw new RasterFormatException("从服务器读取发生异常-原因 服务器可能关闭了流对象");
  15. }
  16. }