Tcp-客户端并发登录
来源:互联网 发布:博彦科技面试php 编辑:程序博客网 时间:2024/05/09 19:48
看毕老师视频练个手
import java.io.*;
import java.net.*;
class LoginClient
{
public static void main(String[] agrs) throws Exception
{
Socket s = new Socket(“192.168.0.101”,10003);
/读取键盘录入,获得输出流/
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 str = bufin.readLine(); System.out.println(str); if(str.contains("欢迎")) break; } /*输入3次以后将客户端输出流关闭*/ bufr.close(); s.close();}
}
class UserThread implements Runnable
{
/只能从外部导入Socket对象/
private Socket s;
UserThread(Socket s)
{
this.s = s;
}
/*服务端校验3次,3次不成功就停止校验*/public void run(){ for(int x=0; x<3; x++) { String ip = s.getInetAddress().getHostAddress(); System.out.println(ip+"...connected"); try { BufferedReader bufr = new BufferedReader(new InputStreamReader(s.getInputStream())); String name = bufr.readLine(); BufferedReader buffile = new BufferedReader(new FileReader("username.txt")); PrintWriter out = new PrintWriter(s.getOutputStream(),true); String line = null; boolean flag = false;//定义一个标记; while((line=buffile.readLine())!=null) { if(line.equals(name)) { flag = true; break; } } if(flag) { System.out.println(name+",login"); out.println(name+",欢迎光临"); break; //跳出for循环; } else { System.out.println(name+",尝试登录"); out.println(name+",用户名不存在"); } s.close(); } catch(Exception e) { throw new RuntimeException("校验失败"); } }}
}
class Server
{
public static void main(String[] args) throws Exception
{
ServerSocket ss = new ServerSocket(10003);
/多线程,多个客户端并发登录/
while(true)
{
Socket s = ss.accept();
new Thread(new UserThread(s)).start();
}
}
}
- Tcp客户端并发登录
- Tcp-客户端并发登录
- 黑马程序员—TCP-客户端并发登录小例子
- Java基础-网络编程(TCP-客户端并发登录)
- 网络编程二:TCP传输、TCP双向传输、文本转换、并发上传图片、客户端并发登录
- 多客户端并发登录
- TCP--客户端简单登录
- Java-Socket TCP-并发登录
- java基础知识11(TCP客户端并发登陆
- 网络编程--TCP客户端并发登陆
- TCP-客户端多线程并发登陆服务端
- java基础知识10(TCP:客户端并发上传图片)
- 黑马程序员-TCP协议服务端ServerScoket接收客户端并发请求。
- TCP--通过多线程实现客户端并发上传图片
- Linux select TCP并发服务器与客户端编程
- 黑马程序员—TCP-客户端并发上传图片小例子
- 黑马程序员 Java练习-模拟TCP客户端并发上传图片
- 黑马程序员-----网络编程中Tcp客户端并发上传图片
- leetcode No4. Median of Two Sorted Arrays
- 核心动画Core Animation系列之概述和CABasicAnimation
- An Introduction to Variable and Feature Selection
- 有关Java.Math的一些注意
- Android调用系统软键盘删除键
- Tcp-客户端并发登录
- ecliopse adt genymotion 安装android 开发环境
- MBMS笔记
- oracle 11g移动数据文件
- 我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻
- vs2013下使用mysql connector连接mysql数据库
- Java多线程3(三种方式混合实现)
- Fresco的简单使用
- 插入节点insertbefore()