在线添加好友,并在好友列表显示 一

package com.yychatserver.controller;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Iterator;
import java.util.Set;

import javax.management.relation.RelationType;

import com.yychat.model.Message;

public class ServerReceiverThread extends Thread{
Socket s;

ObjectInputStream ois;
ObjectOutputStream oos;
Message mess;
String sender;

public ServerReceiverThread(Socket s) {
	this.s=s;
}

public void run() {
	
	while(true) {
	try {
		ois=new ObjectInputStream(s.getInputStream());
		mess=(Message)ois.readObject();
		sender=mess.getSender();
		System.out.println(mess.getSender()+"对"+mess.getReceiver()+"说:"+mess.getContent());
		
		
		if(mess.getMessageType().equals(Message.message_AddFriend)) {
			String addFriendName=mess.getContent();
			System.out.println("需要添加新好友的名字:"+addFriendName);
			
			if(!YychatDbUtil.seekUser(addFriendName)) {
				
				mess.setMessageType(Message.message_AddFriendFailure_NoUser);
			}else {
				
				
				String relationType="1";
				if(YychatDbUtil.seekRelation(sender,addFriendName,relationType)) {
				
				mess.setMessageType(Message.message_AddFriendFailure_AlreadyFriend);
				}else {
					
					int count=YychatDbUtil.addRelation(sender,addFriendName,relationType);
					if(count!=0) {
						mess.setMessageType(Message.message_AddFriendSuccess);
						
						String allFriendName=YychatDbUtil.getFriendString(sender);
						mess.setContent(allFriendName);
					}
				}
			}
			sendMessage(s, mess);
		}
		
		if(mess.getMessageType().equals(Message.message_Common)) {
		Socket s1=(Socket)StartServer.hmSocket.get(mess.getReceiver());
		sendMessage(s1,mess);
		}
		
		
		if(mess.getMessageType().equals(Message.message_RequestOnlineFriend)) {
			
			Set friendSet=StartServer.hmSocket.keySet();
			Iterator it=friendSet.iterator();
			String friendName;
			String friendString=" ";
			while(it.hasNext()) {
				friendName=(String)it.next();
				if(!friendName.equals(mess.getSender()))
					friendString=friendString+friendName+" "
					
					;
			}
			System.out.println("全部好友的名字;"+friendString);
			
			
			mess.setContent(friendString);
			mess.setMessageType(Message.message_OnlineFriend);
			mess.setSender("Server");
			mess.setReceiver(sender);
			sendMessage(s,mess);
		}
		
		
	}catch(IOException | ClassNotFoundException e) {
		e.printStackTrace();
	}
	
}
	
	
}

public void sendMessage(Socket s,Message mess) throws IOException{
	oos=new ObjectOutputStream(s.getOutputStream());
	oos.writeObject(mess);
}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值