📄 server.java
字号:
//以下告诉客户其好友的呢称,号码,ip地址,状态,头像,个人资料等信息
out.println(friendno.size());
for (int i = 0; i < friendno.size(); i++) {
String friendinfo =
"select nickname,icqno,ip,status,pic,email,info from icq where icqno=?";
PreparedStatement prepare5 =
c4.prepareCall(friendinfo);
prepare5.clearParameters();
prepare5.setObject(1, friendno.get(i));
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(
dserver,
duser,
dpass);
//连接数据库,根据接受的用户号码及好友号码向好友表添加记录
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(
dserver,
duser,
dpass);
//连接数据库,根据接受的用户号码及好友号码向好友表添加记录
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(
dserver,
duser,
dpass);
//连接数据库,根据接受的用户号码及好友号码向好友表删除记录
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(
dserver,
duser,
dpass);
//连接数据库,根据接受的用户号码,将其状态字段设为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(
dserver,
duser,
dpass);
//连接数据库,根据我的号码,从好友表中选择谁加了我
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) {
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -