⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.java

📁 JAVA的高级应用以及网络编程
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
					ResultSet r5=prepare5.executeQuery();
					boolean status;
					while(r5.next()){
						out.println(r5.getString("nickname"));
						out.println(r5.getInt("icqno"));
						out.println(r5.getString("ip"));
						status=r5.getBoolean("status");
						if (status)out.println("1");
						else {out.println("0");}
						out.println(r5.getInt("pic"));
						out.println(r5.getString("email"));
						out.println(r5.getString("info"));
					} //while
					r5.close();
				}//for
				//发送完毕
				out.println("over");
				System.out.println("over");
				c4.close();r4.close();
			}catch (Exception e){e.printStackTrace();System.out.println("false");}
				//socket.close();
			}//end friend
			//读取好友信息完毕
			
			//**********以下处理用户添加好友**********
			else if(str.equals("addfriend")){
			System.out.println("add");
			try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
				Connection c6=DriverManager.getConnection("jdbc:odbc:javaicq","sa","shift");
 				//连接数据库,根据接受的用户号码及好友号码向好友表添加记录
				int friendicqno=Integer.parseInt(in.readLine());
				System.out.println(friendicqno);
				int myicqno=Integer.parseInt(in.readLine());
				System.out.println(myicqno);
				String addfriend="insert into friend values(?,?)";
				PreparedStatement prepare6=c6.prepareCall(addfriend);
				prepare6.clearParameters();
				prepare6.setInt(1,myicqno);
				prepare6.setInt(2,friendicqno);
				int  r6=0;
				r6=prepare6.executeUpdate();
				if(r6==1) System.out.println("ok  addfrien");
				else  System.out.println("false addfriend");
			}catch (Exception e){e.printStackTrace();System.out.println("false");}
				//socket.close();
				System.out.println("over addfriend");
			}//end addfriend
			//用户添加好友结束
			
			//add new friend who add me
			//**********以下处理其他用户如果加我,我就加他**********
			else if(str.equals("addnewfriend")){
			System.out.println("add");
 			try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
				Connection c6=DriverManager.getConnection("jdbc:odbc:javaicq","sa","shift");
				//连接数据库,根据接受的用户号码及好友号码向好友表添加记录
				int friendicqno=Integer.parseInt(in.readLine());
				System.out.println(friendicqno);
				int myicqno=Integer.parseInt(in.readLine());
				System.out.println(myicqno);
				String addfriend="insert into friend values(?,?)";
				PreparedStatement prepare6=c6.prepareCall(addfriend);
				prepare6.clearParameters();
				prepare6.setInt(1,myicqno);
				prepare6.setInt(2,friendicqno);
				int  r6=0;
				r6=prepare6.executeUpdate();
				if(r6==1) System.out.println("ok  addfrien");
				else  System.out.println("false addfriend");

				String friendinfo="select nickname,icqno,ip,status,pic,email,info from icq where icqno=?";
				//如果成功,就向用户传递好友的基本信息,比如呢称等
				PreparedStatement prepare5=c6.prepareCall(friendinfo);
				prepare5.clearParameters();
				prepare5.setInt(1,friendicqno);
				ResultSet r5=prepare5.executeQuery();
				boolean status;
				while(r5.next()){
				System.out.println("dsf");
				out.println(r5.getString("nickname"));
				out.println(r5.getInt("icqno"));
				out.println(r5.getString("ip"));
				status=r5.getBoolean("status");
				if (status)out.println("1");
				else {out.println("0");}
				out.println(r5.getInt("pic"));
				out.println(r5.getString("email"));
				out.println(r5.getString("info"));
				} //while
				out.println("over");
				r5.close();
				c6.close();
			}catch (Exception e){e.printStackTrace();System.out.println("false");}
			System.out.println("over addnewfriend");
			}//end addfriend
			//结束处理其他用户如果加我,我就加他
			
			//delete friend
			//**********以下执行用户删除好友**********
			else if(str.equals("delfriend")){
			System.out.println("del");
			try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
				Connection c7=DriverManager.getConnection("jdbc:odbc:javaicq","sa","shift");
				 //连接数据库,根据接受的用户号码及好友号码向好友表删除记录
				int friendicqno=Integer.parseInt(in.readLine());
				System.out.println(friendicqno);
				int myicqno=Integer.parseInt(in.readLine());
				System.out.println(myicqno);
				String addfriend="delete from friend where icqno=? and friend=?";
				PreparedStatement prepare7=c7.prepareCall(addfriend);
				prepare7.clearParameters();
				prepare7.setInt(1,myicqno);
				prepare7.setInt(2,friendicqno);
				int  r7=0;
				r7=prepare7.executeUpdate();
				if(r7==1) System.out.println("ok  delfrien");//成功
				else  System.out.println("false delfriend");//失败
			}catch (Exception e){e.printStackTrace();System.out.println("del false");}
			}//end delete friend
			//执行用户删除好友结束
			//**********以下处理用户退出程序**********
			else if(str.equals("logout")){
			try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
				Connection c8=DriverManager.getConnection("jdbc:odbc:javaicq","sa","shift");
				//连接数据库,根据接受的用户号码,将其状态字段设为0,及ip地址设为空
				int myicqno=Integer.parseInt(in.readLine());
				System.out.println(myicqno);
				String status="update icq set status=0 , ip=' ' where icqno=?";
				PreparedStatement prest8=c8.prepareCall(status);
				prest8.clearParameters();
				prest8.setInt(1,myicqno);
				int r8=prest8.executeUpdate();
				if(r8==1) System.out.println("ok  logout");
				else  System.out.println("false logout");
			}catch (Exception e){e.printStackTrace();System.out.println("logout false");}
			}//logout end
			//处理用户退出程序结束
			
			//get who add me as friend
			//**********以下处理那些人加了我为好友,以便上线通知他们**********
			else if(str.equals("getwhoaddme")){
			System.out.println("getwhoaddme");
			try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
				Connection c9=DriverManager.getConnection("jdbc:odbc:javaicq","sa","shift");
				//连接数据库,根据我的号码,从好友表中选择谁加了我
				int myicqno=Integer.parseInt(in.readLine());
				System.out.println(myicqno);
				String getwhoaddme="select icqno from friend where friend=?";
				PreparedStatement prepare6=c9.prepareCall(getwhoaddme);
				prepare6.clearParameters();
				prepare6.setInt(1,myicqno);
				ResultSet r6=prepare6.executeQuery();
				Vector who=new Vector();
				while(r6.next()){
				who.add(new Integer(r6.getInt(1)));
				}//end while
				//然后告诉这些好友的ip地址,然后发给用户以便告诉其他客户我上线了
				for(int i=0;i<who.size();i++){
				String whoinfo="select ip from icq where icqno=? and status=1";
				PreparedStatement prepare=c9.prepareCall(whoinfo);
				prepare.clearParameters();
				prepare.setObject(1,who.get(i));
				ResultSet r=prepare.executeQuery();
				while(r.next()){
				out.println(r.getString("ip"));
				} //while
				r.close();
				}//for
				out.println("over");
				System.out.println("over");
				c9.close();r6.close();
			}catch (Exception e){e.printStackTrace();System.out.println("false");}
			}//end get who add me as friend
			//处理上线结束
			
			System.out.println("Echo ing :"+str);
		}//线程监听循环结束
		System.out.println("Close...");
		}catch(IOException e){}//捕或异常
		finally {try{socket.close();}
			catch(IOException e){}
		}
	}//run方法结束
}//服务线程定义结束(类ServerThread的定义结束)

/** 
*<p> Server</p> 
* 
* 监听客户端请求,并为客户端创建服务线程
*
* @author 
* @version 
*/ 
public class Server{//主服务器类
public static void main(String args[])throws IOException{
	ServerSocket s=new ServerSocket(8080);//在8080端口创建套接口
	System.out.println("Server start.."+s);
	try{
		while(true){Socket socket=s.accept();//无限监听客户的请求
			System.out.println("Connectino accept:"+socket);
			try{
				new ServerThread(socket);//创建新线程
			}catch(IOException e){
				socket.close();
			}
		}
      }finally{s.close();}//捕或异常
    }//main方法定义结束
}//服务器程序结束(Server类的定义结束)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -