java 网络编程-多人登录面向对象
发布时间:2020-12-15 07:55:34 所属栏目:Java 来源:网络整理
导读:TCP:模拟登录 :多个客户端,先后等待 public class tcp {public static void main(String[]args) throws IOException{ System.out.println("服务器启动中..."); ServerSocket server=new ServerSocket(8888); boolean flag=true; while(flag) { Socket client
TCP:模拟登录 :多个客户端,先后等待
public class tcp { public static void main(String[]args) throws IOException { System.out.println("服务器启动中..."); ServerSocket server=new ServerSocket(8888); boolean flag=true; while(flag) { Socket client=server.accept(); //一个客户端建立连接 System.out.println("一个客户端建立了连接"); new Thread(new channel(client)).start(); } } static class channel implements Runnable{ private Socket client; private DataInputStream dis; //输入流 DataOutputStream dos; //输出流 public channel(Socket client) { this.client=client; try { dis=new DataInputStream(client.getInputStream()); dos=new DataOutputStream(client.getOutputStream()); } catch (IOException e) { e.printStackTrace(); release(); } } public void run() { String uname=""; String password=""; String data=receive(); String[] datas=data.split("&"); uname=datas[0]; password=datas[1]; if(uname.equals("杜雨龙")&&password.equals("你最帅")) { send("登陆成功"); }else { send("登录失败"); } release(); } //接收数据 private String receive() { String data=""; try { data = dis.readUTF(); } catch (IOException e) { e.printStackTrace(); } return data; } //发送数据 private void send(String msg) { try { dos.writeUTF(msg); dos.flush(); } catch (IOException e) { e.printStackTrace(); } } //释放资源 private void release() { try { if(null!=dis) { dis.close(); } } catch (IOException e) { e.printStackTrace(); } try { if(null!=dis) { dos.close(); } } catch (IOException e) { e.printStackTrace(); } try { if(null!=client) { client.close(); } } catch (IOException e) { e.printStackTrace(); } } } } 客户端: 存储文件 public class tcp2 { public static void main(String[]args) throws IOException { System.out.println("客户端启动中..."); Socket client=new Socket("localhost",8888); //发送 new send(client).sendto(name+"&"+password); new receive(client).receiveto(); client.close(); } static class send{ private Socket client; private DataOutputStream dos; private BufferedReader br; private String msg; public send(Socket client) { this.client=client; br=new BufferedReader(new InputStreamReader(System.in)); msg=init(); try { dos =new DataOutputStream(client.getOutputStream()); } catch (IOException e) { e.printStackTrace(); } } public void sendto() { try { dos.writeUTF(msg); dos.flush(); } catch (IOException e) { e.printStackTrace(); } } public String init() { try { System.out.println("请输入用户名"); String name=br.readLine(); System.out.println("请输入密码"); String password=br.readLine(); return name+"&"+password; } catch (IOException e) { e.printStackTrace(); } return null; } } static class receive{ private DataInputStream dis; private Socket client; public receive(Socket client) { this.client=client; DataInputStream dis=new DataInputStream(client.getInputStream()); } public void receiveto() { String data; try { data = dis.readUTF(); System.out.println(data); } catch (IOException e) { e.printStackTrace(); } } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |