?? server.java
字號(hào):
out.println(r5.getString("email"));
out.println(r5.getString("info"));
} //while
r5.close();
}//for
//發(fā)送完畢
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"," "," ");
//連接數(shù)據(jù)庫,根據(jù)接受的用戶號(hào)碼及好友號(hào)碼向好友表添加記錄
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
//用戶添加好友結(jié)束
//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"," "," ");
//連接數(shù)據(jù)庫,根據(jù)接受的用戶號(hào)碼及好友號(hào)碼向好友表添加記錄
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
//結(jié)束處理其他用戶如果加我,我就加他
//delete friend
//以下執(zhí)行用戶刪除好友
else if(str.equals("delfriend")){
System.out.println("del");
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c7=DriverManager.getConnection("jdbc:odbc:javaicq"," "," ");
//連接數(shù)據(jù)庫,根據(jù)接受的用戶號(hào)碼及好友號(hào)碼向好友表刪除記錄
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
//執(zhí)行用戶刪除好友結(jié)束
//以下處理用戶退出程序
else if(str.equals("logout")){
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c8=DriverManager.getConnection("jdbc:odbc:javaicq"," "," ");
//連接數(shù)據(jù)庫,根據(jù)接受的用戶號(hào)碼,將其狀態(tài)字段設(shè)為0,及ip地址設(shè)為空
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
//處理用戶退出程序結(jié)束
//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"," "," ");
//連接數(shù)據(jù)庫,根據(jù)我的號(hào)碼,從好友表中選擇誰加了我
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地址,然后發(fā)給用戶以便告訴其他客戶我上線了
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
//處理上線結(jié)束
System.out.println("Echo ing :"+str);
} System.out.println("Close...");
}catch(IOException e){}//捕或異常
finally {try{socket.close();}
catch(IOException e){}
}
}
}
public class Server{//主服務(wù)器類
public static void main(String args[])throws IOException{
ServerSocket s=new ServerSocket(8080);//在8080端口創(chuàng)建套接口
System.out.println("Server start.."+s);
try{
while(true){Socket socket=s.accept();//無限監(jiān)聽客戶的請(qǐng)求
System.out.println("Connectino accept:"+socket);
try{new ServerThread(socket);//創(chuàng)建新線程
}catch(IOException e){socket.close();}
}
}finally{s.close();}//捕或異常
}
}//服務(wù)器程序結(jié)束
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -