基于RMI和Socket的Java聊天软件

【基于RMI和Socket的Java聊天软件】RMI定义远程方法提供给客户端调用
定义的接口:(需要实现
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.sql.SQLException;
import java.util.ArrayList;
public interface ServerMethod extends Remote {

/** *RMI方法 * 登录 登录成功返回true 否则返回false * @paramUID用户UID * @paramPassword 用户密码 * @see boolean */ public boolean Login(String UID,String Password) throws RemoteException, SQLException; //登录 /** *RMI方法 * 注册 注册成功返回true 否则返回false * @paramUID用户UID * @paramPassword 用户密码 * @param Nickname 昵称 * @see boolean */ public boolean Register(String UID ,String Password,String Nickname)throws SQLException,RemoteException; //注册 /** *RMI方法 * 获取存在数据库的未读消息 * @paramUID用户UID * @see ArrayList */ public ArrayList getDBMessage(String UID) throws SQLException,RemoteException; //获取存储在数据库的消息 /** *RMI方法 * 获取好友列表 * @paramUID用户UID * @see ArrayList */ public ArrayList getAllFriends(String UID) throws SQLException,RemoteException; //获取好友列表 格式: UID:Nickname /** *RMI方法 * 发送消息 * @paramUID发送者UID * @param Nickname 昵称 * @paramReceiveID 接收者ID * @param content内容 * @see ArrayList */ public boolean SendMessage(String UID,String Nickname,String ReceiveID,String content) throws SQLException,RemoteException; //对方还不是好友,则发送失败 /** *RMI方法 * 获取实时消息 * @paramUID用户UID * @see ArrayList */ publicArrayList GetMessage(String UID) throws Exception; //实时消息获取 /** *RMI方法 * 发送群聊消息 [Skrill下载](https://www.gendan5.com/wallet/Skrill.html)发送成功返回true * @paramUID发送者UID * @paramNickname 昵称 * @paramGroupUID 群组UID * @paramcontent 内容 * @see boolean */ public boolean SendMessageToGroup(String UID,String Nickname,String GroupUID,String content)throws SQLException,RemoteException; //向群聊发送消息 /** *RMI方法 * 发送群聊消息 发送成功返回true * @paramSendUID发送者UID * @paramNickname 昵称 * @paramReceiveUID 接收者UID * @paramcontent 内容 * @see boolean */ public boolean AddFriendsRequest(String SendUID,String ReceiveUID,String Nickname,String content)throws SQLException,RemoteException; //发送添加好友请求 /** *RMI方法 * 删除关系 * @paramID1 ID2 * @paramID2 ID1 */ public void DeleteFriend(String ID1,String ID2)throws SQLException,RemoteException; //删除关系 /** *RMI方法 * 新建群聊 * @paramSendUID ID2 * @paramGID ID1 */ public boolean NewGroup(String SendUID,String GID)throws SQLException,RemoteException; //新建群聊 /** *RMI方法 * 添加群聊 * @paramUID 用户ID * @paramGID 群聊ID */ public void AddGroup(String UID,String GID)throws SQLException,RemoteException; //添加群聊 无需验证 /** *RMI方法 * 修改昵称 * @paramUID 用户ID * @paramnewNickname 新用户昵称 * @seeboolean */ public boolean ChangeNickname(String UID,String newNickname)throws SQLException,RemoteException; //修改昵称 /** *RMI方法 * 修改密码 * @paramUID 用户ID * @paramnewPassword 新密码 * @seeboolean */ public boolean ChangePassword(String UID,String newPassword)throws SQLException,RemoteException; //修改密码 /** *RMI方法 * 获取用户消息 * @paramUID 用户ID */ public String getUserInfo(String UID)throws SQLException,RemoteException; //获取用户信息 若为群组返回 G:GID 若为用户返回 U:UID:Nickname /** *RMI方法 * 同意添加好友 * @paramSendUID 发送者ID * @paramReceiveUID 接收者UID */ publicvoid AgreeAddFriendRequest(String SendUID,String ReceiveUID)throws SQLException,RemoteException; /** *RMI方法 * 拒绝添加好友 * @paramSendUID 发送者ID * @paramReceiveUID 接收者UID */ publicvoid RefuseAddFriendRequest(String SendUID,String ReceiveUID)throws SQLException,RemoteException;

}

    推荐阅读