使用套接字创建多线程聊天服务器

时间:2013-03-29 15:48:29

标签: java tcp chat channels

我正在使用TCP套接字编写服务器聊天。我实施了公共和私人消息。现在,我该如何制作频道?如何将通道与套接字客户端链接?我像这样String[]

if (frase.startsWith("/make")) {
    //crea sala
    String[] privado = frase.split("\\s", 2);
    synchronized (this) {
        end = false;
        for (int i = 0; i < MAX && !end; i++){
            if (salas[i] == null) {
                canal = privado[1];
                salas[i] = canal;
                end = true;
            } else if (privado[1].startsWith(salas[i])) {
                salidaACliente.println("Ya existe " + privado[1] + "\n");
                end = true;
            }
            if (i == MAX - 1) {
                salidaACliente.println("Espacio de canales lleno.\n");
                end = true;
            }
        }
    }
}

例如:

  • 0-通道1
  • 1-channel2

所有用户都可以使用命令/seechannels

查看创建的频道
String[] salas = new salas[20];

但到目前为止,频道只有String。我现在如何使用/join channel1

将频道与套接字相关联

1 个答案:

答案 0 :(得分:0)

例如,您可以在所有线程中创建一个数组,该数组存储用户所属的通道。

boolean joinedChannels[] = new Boolean[max_channels];

// Remember to intialize the array.

if (cmd == "/joinchannel") {            // cmd here is the issued command
   joinedChannels[args[0]] = true;      // args[] is an array of the arguments
                                        // following the command. This sets the
                                        // desired channel to be active.
} else if (cmd == "/leavechannel") {
   joinedChannels[args[0]] = false;     // And this here sets it inactive.
}