📄 jcq_server.cpp
字号:
#include "../network/network.h"
#include "annuaire.h"
int
main(int argc, char *argv[])
{
annuaire *annuaire_jcq;
annuaire_jcq = new annuaire("default");
network *net;
net = new network(3210);
net->set_debug(1);
net->demarre_serveur();
while (1)
{
if (net->remove_id != -1)
{
annuaire_jcq->remove(net->remove_id);
net->broadcast_msg("LISTE_CLIENTS",annuaire_jcq->get_clients_list());
net->remove_id = -1;
net->update_output();
}
//_sleep(50);
net->update_input();
struct _paquet* paquets = net->get_paquets();
struct _paquet* tmp = paquets;
while (tmp)
{
if (!strcmp(tmp->tag, "LOGIN"))
{
annuaire_jcq->ajout_annuaire(tmp->valeur, net->get_ip(tmp->destinataire), tmp->destinataire);
net->broadcast_msg("LISTE_CLIENTS",annuaire_jcq->get_clients_list());
}
else if (!strcmp(tmp->tag,"MSG"))
{
//Parsing du message
int i=0;
while ((tmp->valeur[i] != '#')&&(i < strlen(tmp->valeur)))
i++;
char dest[255];
char msg[255];
strncpy(dest, tmp->valeur, i);
dest[i] = '\0';
for (int j=i+1; j < strlen(tmp->valeur); j++)
msg[j-(i+1)] = tmp->valeur[j];
msg[strlen(tmp->valeur)-i-1] = '\0';
//formattage du msg
char msg_envoi[255];
sprintf(msg_envoi, "%s#%s", annuaire_jcq->get_nick(tmp->destinataire),msg);
//recherche de dest dans l'annuaire
int sk = annuaire_jcq->get_sock(dest);
if (sk == -1)
net->envoi(tmp->destinataire,"ERR","Utilisateur inconnu !");
else
net->envoi(sk, "MSG",msg_envoi);
}
struct _paquet* tmp2 = tmp;
tmp = tmp->next;
free(tmp2);
net->update_output();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -