• 曾经少年π
    2020-01-25
    萌哥,你好呀,很喜欢你的课程。回到正题 Constants.java文件使用interface而不用class是因为可以省略public static final吗(代码简单,扩展性强?), 还是还有其他的原因? 新年快乐!
     1
    
  • 消融
    2019-08-29
    private void handleServerCommand(ChatMessage chatMessage) {

                DataExchange from = name2DataEx.get(chatMessage.getFrom());

                String command = chatMessage.getMessage();



                if (command.equalsIgnoreCase(SERVER_COMMAND_LOGOFF)) {

                    from.send(new ChatMessage(ADMIN_NAME, chatMessage.getFrom(), BYE));

                    from.close();这个from指的不都是服务端的DataExchange这个关闭了是代表服务器的socket,writer,reader关闭了吗,那还剩两个客户端怎么联系啊?


                    name2DataEx.remove(userName).close();

                    System.out.println("用户\"" + chatMessage.getFrom() + "\"离开聊天室");
    展开

    作者回复:
    服务器端和每个客户都有一个连接的。这里只会断开服务器和离开聊天室的人的连接

    
    
  • 消融
    2019-08-28
    private void handleServerCommand(ChatMessage chatMessage) {

                DataExchange from = name2DataEx.get(chatMessage.getFrom());

                String command = chatMessage.getMessage();



                if (command.equalsIgnoreCase(SERVER_COMMAND_LOGOFF)) {

                    from.send(new ChatMessage(ADMIN_NAME, chatMessage.getFrom(), BYE));

                    from.close();


                    name2DataEx.remove(userName).close();这里什么意思啊,是从map中删除键值对,然后再关闭DataExchange吗,可是map里的DataExchange只有一个啊,关了一次,其他客户端说bye再close,关了怎么再关啊

                    System.out.println("用户\"" + chatMessage.getFrom() + "\"离开聊天室");
    展开

    作者回复:
    map里的DataExchange个数是和连接到服务器的客户端数相关的

    
    
  • 消融
    2019-08-28
    private void handleServerCommand(ChatMessage chatMessage) {

                DataExchange from = name2DataEx.get(chatMessage.getFrom());

                String command = chatMessage.getMessage();



                if (command.equalsIgnoreCase(SERVER_COMMAND_LOGOFF)) {

                    from.send(new ChatMessage(ADMIN_NAME, chatMessage.getFrom(), BYE));

                    from.close();这个from指的不都是服务端的DataExchange这个关闭了那还剩两个客户端怎么联系啊?


                    name2DataEx.remove(userName).close();

                    System.out.println("用户\"" + chatMessage.getFrom() + "\"离开聊天室");
    展开
    
    
我们在线,来聊聊吧