jcq.cpp

来自「即时通信程序(类似于QQ,MSN) 用C写的」· C++ 代码 · 共 81 行

CPP
81
字号
#include "../network/network.h"
#include "gui.h"
#define SERVER_IP "localhost"

network *net;
extern bool online;
extern struct _gui gui;


bool
envoi_message(char *dest, char *msg)
{
 char tmp[255];
 sprintf(tmp, "%s#%s", dest, msg);
// printf("envoi_message  > Envoi de %s\n", tmp);
 if (net->envoi(-1,"MSG", tmp))
  return true;
 else
  return false;
}

bool
idle_func(GtkWidget *widget, gpointer data)
{

 if (!online)
  return true;

  //MAJ des arriv閑s depuis le serveur
  net->update_input();
  struct _paquet* paquets = net->get_paquets();
  struct _paquet* tmp = paquets;


  while (tmp)
  {
    if (!strcmp(tmp->tag, "MSG"))  
    {
      //Parsing du message
      int i=0;
      char dest[255];
      char msg[255];
      while ((tmp->valeur[i] != '#')&&(i < strlen(tmp->valeur)))
        i++;

      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';
	  popup_manager(dest, msg);
    }
    else if (!strcmp(tmp->tag, "ERR"))
    {
     errormsg(gui.window, "Erreur ! %s\n", tmp->valeur);
    }
    else if (!strcmp(tmp->tag, "LISTE_CLIENTS"))
    {
      maj_modele(tmp->valeur);
    }
    
    struct _paquet* tmp2 = tmp;
    tmp = tmp->next;
    free(tmp2);
  }
  
  //Maj des sorties
  net->update_output();

  return true;
}

int
main(int argc, char *argv[])
{
 net = new network(3210);
 net->set_debug(0);
 start_gui(argc, argv);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?