网络编程(TCP-客户端并发登录)
2016-01-21 20:40
549 查看
package netTest; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class LoginServer { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub ServerSocket ss = new ServerSocket(10003); // 或取多个客户端需要用到线程 while(true){ Socket s = ss.accept(); new Thread(new UserThread(s)).start(); } } } class UserThread implements Runnable { private Socket s; UserThread(Socket s){ this.s = s; } @Override public void run() { // TODO Auto-generated method stub try{ for(int x = 0;x<3;x++){ BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream())); String name = bufIn.readLine(); if(name == null){ break; } BufferedReader bufr = new BufferedReader(new FileReader("user.txt")); PrintWriter out = new PrintWriter(s.getOutputStream(),true); String line = null; boolean flag = false; while((line = bufr.readLine())!=null){ if(line.equals(name)){ flag = true; break; } } if(flag){ System.out.println(name+",已登录"); out.println(name+"欢迎光临"); break; } else{ System.out.println(name+",尝试登录"); out.println(name+"用户名不存在。"); } } s.close(); } catch(Exception e){ e.printStackTrace(); } } } package netTest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; /* * 只能校验三次。 * */ public class LoginClient { public static void main(String[] args) throws Exception, Exception { // TODO Auto-generated method stub //1.建立端点 Socket s = new Socket(InetAddress.getLocalHost(), 10003); //2.组织数据(先写输入输出流 ) BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); PrintWriter out = new PrintWriter(s.getOutputStream(),true); BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream())); //只能发送三次 for(int x = 0;x<3;x++){ String line = bufr.readLine(); if(line == null){ break; } out.println(line); String info = bufIn.readLine(); System.out.println("info:"+info); if(info.contains("欢迎")){ break; } } bufr.close(); s.close(); } }
相关文章推荐
- 数学建模算法(三):神经网络
- CentOS和Ubuntu设置或修改网络配置(IP&网关&DNS)
- 网络请求--Retrofit2使用方法
- 关于Bad Request - Invalid URL HTTP Error 400. The request URL is invalid 如何处理?
- Android 网络数据的缓存HttpResponseCache <18>
- jmeter 中的 HTTP URL Re-writing Modifier
- Java使用socket网络编程实现多人聊天室
- 网络流小结
- Volley与XUtils网络请求使用对比,心得,两者基本使用
- httpclient 请求http数据,json转map
- Java基础_11_网络编程
- SQLiteDatabase类——转载(http://www.cnblogs.com/tt_mc/archive/2010/03/09/1681540.html)
- android 自定义控件 播放gif 既可以是从网络上获取资源 也可以是本地资源
- IOS网络开发:AFNetworking第三方框架的使用
- TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景
- TCP header
- SQlite 基础 转自:http://www.cnblogs.com/elleniou/archive/2012/05/04/2482041.html
- 和安全有关的那些事(非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS)
- 使用zabbix的ICMP Ping模版实现对客户端网络状态的监控
- CentOS6.X上安装Cacti网络监控系统和Spine轮询