📄 serverthreadforclient.java
字号:
if(Information.equals("DelResMsg")){
new UpdatePersonalInformation(QQNumber,"ResponseList","@").Update();
System.out.println("还是哈哈");
}
if(Information.startsWith("DelLevGroupMsg")){
new UpdatePersonalInformation(QQNumber,"GroupLeavingMessage","@").Update();
}
if(Information.startsWith("DelFri")){
new UpdatePersonalInformation(QQNumber,"FriendList","@"+Information.substring(6)).Update();
new SendAndReceive(clientSocket,"ReDelFri"+Information.substring(6)).SendMessage();
}
if(Information.startsWith("NewGroup")){
String GroupNumber=Information.substring(8,12);
System.out.println( "哈哈");
System.out.println( GroupNumber);
String Icon=Information.substring(12,13);
System.out.println( Icon);
String GroupMember=Information.substring(14);
System.out.println( GroupMember);
if(new DMLGroups(GroupNumber,Icon,GroupMember,QQNumber).Insert()){
new UpdatePersonalInformation(QQNumber,"MyGroup",GroupNumber).Update();
StringTokenizer Sk=new StringTokenizer(GroupMember,"#");
while(Sk.hasMoreTokens()){
String Number=Sk.nextToken().substring(1,10);
new UpdatePersonalInformation(Number,"GroupList",Icon+GroupNumber).Update();
}
new SendAndReceive(clientSocket,"newGroupOK").SendMessage();
}
else{
new SendAndReceive(clientSocket,"newGroupNO").SendMessage();
}
}
if(Information.startsWith("GroupMessage")){ //群消息
String GroupNum=Information.substring(12,16);
String Message=Information;
try {
new DMLGroups().Append(GroupNum,"Messages",Message.substring(12));
} catch (SQLException ex) {
ex.printStackTrace();
}
String Member=new DMLGroups().Query(GroupNum,"Members");
Socket ToSocket=null;
StringTokenizer St=new StringTokenizer(Member,"#");
while(St.hasMoreTokens()){
String Number=St.nextToken().substring(1,10);
System.out.println("得到的号码对不?:"+Number);
int i=0;
System.out.println("长度:"+服务器界面.clientOnlineList.GetLength());
for(i=0;i<服务器界面.clientOnlineList.GetLength();i++){
System.out.println("在线号码:"+服务器界面.clientOnlineList.GetMember(i).GetNumber());
if(服务器界面.clientOnlineList.GetMember(i).GetNumber().equals(Number)){
ToSocket=服务器界面.clientOnlineList.GetMember(i).GetSocket();
}
}
System.out.println("一定能过去的");
if(ToSocket!=null){
new SendAndReceive(ToSocket,Message).SendMessage();
System.out.println("发送了群消息");
}
else{
new UpdatePersonalInformation(Number,"GroupLeavingMessage",Message).Update();
System.out.println("保存群消息");
}
}
}
if(Information.startsWith("TransFile")){
String Number=Information.substring(9,18);
String InetAddr=Information.substring(18);
Socket ToSocket=null;
int i=0;
for(i=0;i<服务器界面.clientOnlineList.GetLength();i++){
if(服务器界面.clientOnlineList.GetMember(i).GetNumber().equals(Number)){
ToSocket=服务器界面.clientOnlineList.GetMember(i).GetSocket();
}
}
if(ToSocket!=null){
new SendAndReceive(ToSocket,"TransFile"+InetAddr).SendMessage();
}
else{
new SendAndReceive(clientSocket,"ReTransFileFail").SendMessage();
}
}
if(Information.startsWith("ReTransFileRefuse")){
new SendAndReceive(clientSocket,"ReTransFileRefuse").SendMessage();
}
if(Information.startsWith("CharRecordC")){
String SayFrom=Information.substring(11,20);
System.out.println("说话的是:"+SayFrom);
String SayTo=Information.substring(20);
System.out.println("听者是:"+SayTo);
String Record="ChatRecordC";
ResultSet ResultData=new DMLMessageRecord().Query();
try {
while(ResultData.next()){
String From=ResultData.getString("SayFrom");
if(From.equals(SayFrom)){
Record=Record+SayFrom+ResultData.getString("Content")+"#";
}
else if(From.equals(SayTo)){
Record=Record+SayTo+ResultData.getString("Content")+"#";
}
else{
Record=Record;
}
}
} catch (SQLException ex) {
ex.printStackTrace();
}
new SendAndReceive(clientSocket,Record).SendMessage();
}
if(Information.startsWith("ChatRecordG")){
String GroNum=Information.substring(11);
String Record=new DMLGroups().Query(GroNum,"Messages").substring(1);
new SendAndReceive(clientSocket,"ChatRecordG"+Record).SendMessage();
}
if(Information.startsWith("Add")){
String To=Information.substring(3,12);
String From=Information.substring(12,21);
String NicNam=Information.substring(21);
if(!new Identifying(To).IsNumberExistOnline()){ //判断是否在线
new UpdatePersonalInformation(To,"RequestList",From+NicNam).Update(); //如果不在
}
else{
Socket ToSocket=null;
for(int i=0;i<服务器界面.clientOnlineList.GetLength();i++){
if(服务器界面.clientOnlineList.GetMember(i).GetNumber().equals(To)){
ToSocket=服务器界面.clientOnlineList.GetMember(i).GetSocket();
}
}
new SendAndReceive(ToSocket,"Add"+From+NicNam).SendMessage(); //给在线的人发送加好友请求
System.out.println("发了Add请求");
}
}
if(Information.startsWith("RA")){
String To=Information.substring(4,13);
String Answer=null;
if(Information.substring(2,4).equals("OK")){
Answer="RAOK"+NickName;
new UpdatePersonalInformation(To,"FriendList",Icon+QQNumber+NickName).Update();
Identifying IsOnline=new Identifying(To);
if(IsOnline.IsNumberExistOnline()){
String state="1";
if(IsHide){
state="0";
}
System.out.println("这里是:"+IsOnline.socket);
new SendAndReceive(IsOnline.socket,"New"+state+Icon+QQNumber+NickName+"#").SendMessage();
System.out.println("发了更新命令");
new SendAndReceive(IsOnline.socket,Answer).SendMessage();
continue;
}
else{
new UpdatePersonalInformation(To,"ResponseList",Answer).Update(); //如果不在
}
System.out.println("这次答案是:"+Answer);
}
else{
Answer="RANO"+NickName;
Identifying IsOnline=new Identifying(To);
if(!IsOnline.IsNumberExistOnline()){ //判断是否在线
new UpdatePersonalInformation(To,"ResponseList",Answer).Update(); //如果不在
}
else{
/*Socket ToSocket=null;
for(int i=0;i<服务器界面.clientOnlineList.GetLength();i++){
if(服务器界面.clientOnlineList.GetMember(i).GetNumber().equals(To)){
ToSocket=服务器界面.clientOnlineList.GetMember(i).GetSocket();
}
}*/
new SendAndReceive(IsOnline.socket,Answer).SendMessage(); //给在线的人发送加好友请求
}
}
}
}
catch(IOException ee)
{
//String r="0E";
//服务器界面.clientOnlineList.RemoveMember(QQNumber);
//int i=0;
//for(i=0;i<服务器界面.clientOnlineList.GetLength();i++){
// r=r+服务器界面.clientOnlineList.GetMember(i).GetNumber()+"|";
// }
//for(i=0;i<服务器界面.clientOnlineList.GetLength();i++)
//{
// Socket ToSocket=服务器界面.clientOnlineList.GetMember(i).GetSocket();
// try {
// Out=new PrintWriter(ToSocket.getOutputStream());
// } catch (IOException ex) {
// ex.printStackTrace();
// }
// Out.println(new String(new StringBuffer(r)));
// Out.flush();
//}
try {
clientSocket.close();
} catch (IOException ex) {
ex.printStackTrace();
}
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -