Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java服务器只接受来自我的客户机的一个条目_Java_Mysql_Server - Fatal编程技术网

Java服务器只接受来自我的客户机的一个条目

Java服务器只接受来自我的客户机的一个条目,java,mysql,server,Java,Mysql,Server,我制作了一个多线程服务器,它连接到MySQL数据库并接受来自客户端的请求。服务器应该始终侦听客户端命令,但这不会发生。它只接受一个命令,然后把它发送到数据库,得到我需要的任何东西,然后就完成了。它不再接受任何命令。 我为您提供客户端和服务器 导入java.io.BufferedReader; 导入java.io.DataInputStream; 导入java.io.DataOutputStream; 导入java.io.IOException; 导入java.io.InputStreamRea

我制作了一个多线程服务器,它连接到MySQL数据库并接受来自客户端的请求。服务器应该始终侦听客户端命令,但这不会发生。它只接受一个命令,然后把它发送到数据库,得到我需要的任何东西,然后就完成了。它不再接受任何命令。 我为您提供客户端和服务器

导入java.io.BufferedReader;
导入java.io.DataInputStream;
导入java.io.DataOutputStream;
导入java.io.IOException;
导入java.io.InputStreamReader;
导入java.io.PrintWriter;
导入java.net.ServerSocket;
导入java.net.Socket;
导入java.rmi.ConnectException;
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.ResultSet;
导入java.sql.SQLException;
导入java.sql.Statement;
导入java.util.Scanner;
公务舱航空公司{
公共静态void main(字符串[]args){
ServerSocket ServerSocket=null;
套接字连接=空;
int端口=1234;
试一试{
serverSocket=新的serverSocket(端口);
而((connection=serverSocket.accept())!=null){
System.out.println(“客户端已连接!”);
线程客户端=新线程(新AirlinesThread(connection));
client.start();
}
}捕获(IOE异常){
System.out.println(“绑定不成功…”);
}
}
}
类AirlinesThread实现Runnable{
套接字连接=空;
公共空气管路螺纹(插座连接){
这个连接=连接;
}
私有静态连接(字符串url、字符串用户、字符串密码){
连接结果=null;
试一试{
结果=DriverManager.getConnection(url、用户、密码);
System.out.println(“数据库连接成功!”);
}
捕获(SQLE异常){
System.out.println(“无法连接到数据库!”);
}
返回结果;
}
String url=“jdbc:mysql://localhost:3306/Airlines";
字符串user=“root”;
字符串pass=“123456”;
Connection link=AirlinesThread.connect(url、用户、密码);
语句stmt=null;
ResultSet ResultSet=null;
公开募捐{
PrintWriter socketOut=null;
DataInputStream socketIn=null;
试一试{
socketOut=new PrintWriter(this.connection.getOutputStream(),true);
socketIn=newdataInputStream(this.connection.getInputStream());
int命令;
布尔存在=假;
socketOut.flush();
循环:做{
socketOut.flush();
command=socketIn.readInt();
开关(命令){
案例1:
试一试{
stmt=link.createStatement();
结果集=stmt.executeQuery(“选择Flight.id,Flight.Date,Flight.Time,Flight.Total_Flight_时间,机场。出发,机场。航班到达,其中Flight.id=机场。航班的机场”);
socketOut.flush();
println(“FlightID\tDate\t\tTime\t\t总时间\tDeparture\tar”);
while(resultSet.next()){
socketOut.println(resultSet.getString(“Flight.id”)+“\t\t”+resultSet.getDate(“Flight.Date”)+“\t”+resultSet.getString(“Flight.Time”)+“\t”+resultSet.getString(“Flight.Total\u Flight\u Time”)+“\t\t”+resultSet.getString(“Airports.department”)+“\t”+resultSet.getString(“Airports.ars”);
}
}
捕获(SQLE异常){
System.out.println(“在1发生了错误”);
}
打破
案例2:
试一试{
stmt=link.createStatement();
resultSet=stmt.executeQuery(“选择Flight.id,Flight.Date,Flight.Time,Pilots.First\u Name,Pilots.Last\u Name from Flight RIGHT JOIN Pilots ON Flight.id=Pilots.FlightID;”;
socketOut.flush();
println(“FlightID\tDate\t\tTime\t\t第一个名称\t第一个名称”);
exists=resultSet.next();
if(exists==false){
socketOut.flush();
println(“错误的请求!”);
System.out.println(“2处的错误查询”);
}
while(resultSet.next()){
socketOut.flush();
socketOut.println(resultSet.getString(“Flight.id”)+“\t\t”+resultSet.getDate(“Flight.Date”)+“\t”+resultSet.getString(“Flight.Time”)+“\t”+resultSet.getString(“Pilots.First_Name”)+“\t\t”+resultSet.getString(“Pilots.Last Name”);
}
}
捕获(SQLE异常){
System.out.println(“在2处出错”);
}
打破
案例3:
试一试{
stmt=link.createStatement();
resultSet=stmt.executeQuery(“从食物中选择食物、早餐、飞机、飞机模型、食物所在的飞机。FlightID=飞机、飞机模型;”);
exists=resultSet.next();
if(exists==false){
socketOut.flush();
println(“错误的请求!”);
System.out.println(“3处的错误查询”);
}
while(resultSet.next()){
socketOut.flush();
println(resultSet.getString(“Food.早餐”)+“\t\t”+resultSet.getString(“Airplanes.Plane\u Model”);
}
}
捕获(SQLE异常){
System.out.println(“在3时出错”);
}
打破
案例0:
socketOut.flush();
socketOut.println(“退出…”);
断环;
违约:
System.out.println(“未知命令!”);
println(“未知命令!”);
打破
}
}while(命令!=0);
System.out.println(“关闭与客户端的连接!”);
}捕获(IOE异常){
e、 printStackTrace();
}最后{
试一试{
如果(socketIn!=null)socketIn.close();
如果(socketOut!=null)socketOut.close();
if(connection!=null)connection.close();
System.out.println(“与服务器的连接已关闭!”);
}
捕获(IOE异常){
System.err.println(“无法关闭连接!”);
}
}
试一试{
如果(stmt!=null)stmt.close();
如果(resultSet!=null)resultSet.close();
如果(link!=null)link.close();
System.out.println(“数据库连接成功关闭!”);
}捕获(SQLException)
socketOut.println("$$$");
socketIn = new BufferedReader(new InputStreamReader(connection.getInputStream()));
int command = keyIn.nextInt();
do {
    socketOut.flush();
    socketOut.writeInt(command);
    String line;
    while (!(line = socketIn.readLine()).equals("$$$"))
        System.out.println(line);
} while ((command = keyIn.nextInt()) != 0);