java 网络编程-多人登录面向对象
2019-08-27 22:30
1656 查看
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(); } } } }
相关文章推荐
- Java面向对象 网络编程 上
- Java面向对象 网络编程 下
- Java面向对象 网络编程 下
- Java面向对象 网络编程 上
- 黑马程序员_java编程基础06面向对象
- 【黑马程序员】java编程基础,面向对象
- Java面向对象及编程的理解
- Java基础知识强化之网络编程笔记21:Android网络通信之 Android常用OAuth登录(获取令牌信息)
- java 网络编程【8】 在TCP网络连接上传递对象
- java网络编程五:暴力法破解登录系统的完全实现(木子)
- Java 编程思想(一)面向对象和JVM基础
- 面向基础系列之---Java网络编程---网络连接组件的使用(URL与URI) 3ff0
- Java面向对象设计编程思想(Essential Object Oriented Software Construction)的本质----百家争鸣 陈光剑
- java编程面向对象思想:封装,继承,多态
- Java基础-网络编程(TCP-客户端并发登录)
- Java网络编程-对象编解码方案、优劣对照
- Java网络编程_传输实体类对象
- java进阶10——面向网络编程
- 理解Java面向对象的程序设计思想-Java基础-Java-编程开发
- java网络编程五:暴力法破解登录系统的完全实现(木子)