package client;
import util.JDBCUtil;
import java.io.*;
import java.net.Socket;
import java.sql.*;
import java.util.Properties;
import java.util.Scanner;
public class Client {
public static String name = null;
public static int passWord ;
static Socket socket = null;
static BufferedReader in;
static PrintWriter out;
static JDBCUtil jdbcUtil;
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
System.out.print("输入用户名:>");
name = sc.nextLine();
System.out.print("输入密码:>");
passWord = sc.nextInt();
jdbcUtil = new JDBCUtil();
Connection conn = jdbcUtil.getConn();
Statement stmt = conn.createStatement();
int i;
while (true) {
i = inspect(conn,name,passWord);
//返回查询结果小于等于0,则创建对象
if(i <= 0){
setClient(stmt,name);
System.out.println("创建成功");
break;
}else{
System.out.println("用户已存在");
System.out.println("重新输入用户名:>");
String line = sc.nextLine();
name = sc.nextLine();
}
}
stmt.close();
conn.close();
try {
socket = new Socket("127.0.0.1", 5678);
out = new PrintWriter(socket.getOutputStream());
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
Thread receive = new Thread(new receiveThread());
receive.start();
out.println(name);
out.flush();
String msg;
//用户发出消息
do {
msg = sc.nextLine();
out.println(msg);
out.flush();
} while (!"bye".equalsIgnoreCase(msg));
} catch (IOException e) {
e.printStackTrace();
}
}
//创建用户
private static void setClient(Statement stmt, String name) throws SQLException {
String sql ="Insert into work1(userName,passWord) values('"+name+"','"+passWord+"')";
stmt.execute(sql);
}
//查询用户是否已存在
private static int inspect(Connection conn, String name, int passWord) throws SQLException {
String sql = "SELECT count(*) from work1 where userName = '"+name+"' ";
PreparedStatement pst=conn.prepareStatement(sql);
ResultSet i = pst.executeQuery(sql);
i.next();
int l = i.getInt(1);
System.out.println("查询结果为"+l);
return l;
}
//读取服务器消息
static class receiveThread implements Runnable{
@Override
public void run() {
try {
while (socket!=null) {
String str = in.readLine();
String message = str.split("-&&-")[0];
String name = str.split("-&&-")[1];
System.out.println(name + ":>" + message);
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
}
简单的java socket多人聊天室
需积分: 5 182 浏览量
2022-03-19
10:04:55
上传
评论
收藏 17KB ZIP 举报
dd白
- 粉丝: 53
- 资源: 1
最新资源
- 沈丘盛世龙门图纸符合规范化
- HM3400-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 基于python+streamlit联邦学习进行高校学生成绩预测研究python源码+项目说明+模型+数据.zip
- HM3400D-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- HM3400B-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- spring-boot示例
- 搜集火星资源.py
- JAR应用启动停止脚本化解决方案.zip
- 配合eclipse svn插件subclipse-4.3.4版本的javahl
- Bash脚本教程:如何优雅地停止JAR服务.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0