• java 网络编程Socket编程


    Server.java

    import java.io.*;
    import java.net.*;
    public class Server {
       public static void main(String args[]) {
          String [] answer ={"南非","进入世界杯了","哈哈...问题真逗!"};
          ServerSocket serverForClient=null;
          Socket socketOnServer=null;
          DataOutputStream out=null;
          DataInputStream  in=null;
          try { serverForClient = new ServerSocket(2010);
          }
          catch(IOException e1) {
                System.out.println(e1);
          } 
          try{ System.out.println("等待客户呼叫");
               socketOnServer = serverForClient.accept(); //堵塞状态,除非有客户呼叫
               out=new DataOutputStream(socketOnServer.getOutputStream());
               in=new DataInputStream(socketOnServer.getInputStream());
               for(int i=0;i<answer.length;i++) {
                  String s=in.readUTF(); // in读取信息,堵塞状态
                  System.out.println("服务器收到客户的提问:"+s);
                  out.writeUTF(answer[i]);
                  Thread.sleep(500);
               }
          }
          catch(Exception e) {
              System.out.println("客户已断开"+e);
          }
       }
    }

    Client.java

    import java.io.*;
    import java.net.*;
    public class Client {
       public static void main(String args[]) {
          String [] mess ={"2010世界杯在哪举行?","巴西进入世界杯了码?","中国进入世界杯了码?"};
          Socket mysocket;
          DataInputStream in=null;
          DataOutputStream out=null;
          try{  mysocket=new Socket("127.0.0.1",2010);
                in=new DataInputStream(mysocket.getInputStream());
                out=new DataOutputStream(mysocket.getOutputStream()); 
                for(int i=0;i<mess.length;i++) {
                  out.writeUTF(mess[i]);
                  String  s=in.readUTF();   //in读取信息,堵塞状态
                  System.out.println("客户收到服务器的回答:"+s);
                  Thread.sleep(500);
                } 
           }
           catch(Exception e) {
                System.out.println("服务器已断开"+e);
           }
       } 
    }
  • 相关阅读:
    浅析8种常用排序
    尾递归和线性递归
    线性表之顺序表
    安装minikube
    error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory
    fatal error: 'openssl/conf.h' file not found
    GraphQL 最突出的架构优势是什么?
    mac 安装 brew
    Clean Architecture
    sql优化
  • 原文地址:https://www.cnblogs.com/yihujiu/p/5991266.html
Copyright © 2020-2023  润新知