Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## ~/Dropbox/Universidade/Linguagem IV/chat/chat 0.8/servidor/servidor.h [c++]
- #ifndef _SERVIDOR_H
- #define _SERVIDOR_H
- #include <stdio.h> /* sprintf */
- #include <stdlib.h> /* malloc, realloc */
- #include <string.h> /* strcpy, strcmp */
- #include <netinet/in.h> /* struct sockaddr_in */
- #include <pthread.h> /* pthread_t, pthread_create */
- /* Tamanho maximo de caracteres do nickname */
- #define LEN_NICKNAME 30
- /* Tamanho maximo de caracteres do comando */
- #define LEN_COMMAND 9
- /* Tamanho maximo de caracteres da mensagem */
- #define LEN_MESSAGE 247
- /* Tamanho maximo de caracteres do texto (LEN_COMMAND + LEN_MESSAGE) */
- #define LEN_TEXT 256
- /* Numero de usuarios em cada bloco */
- #define BLOCK_USERS 2
- /* Numero da porta onde sera realizada a comunicacao */
- #define PORT 8450
- /**
- * Estrutura que armazena dados referentes aos usuarios do chat.
- * Essa estrutura precisa ser inicializada.
- */
- struct user
- {
- char nickname[LEN_NICKNAME];
- int id;
- char ip[32];
- struct beanchat *chat;
- };
- /**
- * Estrutura que armazena dados referentes aos chat server.
- * Essa estrutura precisa ser inicializada.
- */
- struct beanchat
- {
- struct user *users;
- int countUsers;
- };
- void beanchatserver();
- /**
- * Rotina que espera novos clientes conectarem. Quando um client
- * conecta entao receptionist cria um novo socket para a comunicacao
- * com este. Realiza os pedidos do cliente conectados.
- *
- * @param int localsocket
- * @return void
- */
- void receptionist(int localsocket);
- /**
- * Realiza a comunicacao diretamente com um cliente atendendo a
- * seus pesdidos. Os pedidos devem ser enviados para o servidor
- * no formado COMANDO:ARGUMANTOS. Os comandos poderao ser:
- * - identify (identifica o usuario com o nickname)
- * - send (envia uma mensagem para os outros usuarios)
- *
- * @param struc user *userchat
- * @return void
- */
- void *dispatcher(void *userchat);
- /**
- * Verifica se ja existe um usuario com o mesmo nickname informado.
- * Se nao existir entao armazena o usuario no chat e retorna 1. Se
- * existir retorna 0.
- *
- * @param struct user *userchat
- * @param char *nickname
- * @return int
- */
- int identify(struct user *userchat, char nickname[LEN_NICKNAME]);
- /**
- * Realiza o envio de uma mensagem de um usuario para
- * todos os outros conectados com o servidor.
- *
- * @param struct user *userchat
- * @param char *message
- * @return void
- */
- void sendMessage(struct user *userchat, char *message);
- /**
- * Atribui a command todos os caracteres que existem
- * antes do primeiro dois pontos.
- *
- * @param char *text
- * @param char *message
- * @return void
- */
- void getCommand(char *text, char *command);
- /**
- * Atribui a message todos os caracteres que existem
- * apos o primeiro dois pontos.
- *
- * @param char *text
- * @param char *message
- * @return void
- */
- void getMessage(char *text, char *message);
- #endif
- ## server.h [c++]
- #ifndef _SERVER_H
- #define _SERVER_H
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <netinet/in.h>
- #include <pthread.h>
- struct user
- {
- int ip[32];
- char nickname[LEN_NICKNAME];
- struct beanchat *chat;
- struct user user_left;
- struct user user_right;
- };
- struct beanchat
- {
- struct user *users;
- int amount;
- };
- #endif
Add Comment
Please, Sign In to add comment