资源简介

之前发布的版本没有带myql的运行库,好多人运行不了,这次我重新打包一份 包含了mysql 的include 和 lib库 ,这个版本大家可以在本地轻松的编译,文件包内包含了mysql的版本说明,大家最好也安装同样版本的mysql,这样就不会出现兼容性的错误了,另外附上 Linux爱好者QQ群 大家有什么问题可以一起讨论 QQ群:12267557

资源截图

代码片段和文件信息

/*---------------xc_qq.c------------
gcc -Wall -o client_qq client_qq.c ‘pkg-config --cflags --libs gtk+-2.0 gthread-2.0‘ -export-dynamic -lpthread
*/
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include “wrap.h“
#include “mygtk.h“
#define MAXLINE 800

static char *fengefu = “+“;

pthread_t ntid;
static char list_name[MAXLINE][MAXLINE] receive_msg_buf_name[MAXLINE][MAXLINE];
static pthread_t tid;
/*******************************/
static char msg_ip[MAXLINE]msg_port[MAXLINE];
/*********************************/
static char myname[MAXLINE] myip[MAXLINE] msg_buf[MAXLINE] myport[MAXLINE];
/**************文件传输相关变量开始*************/
static char file_from_name[MAXLINE] filename[MAXLINE] receive_ip[MAXLINE] receive_port[MAXLINE] disrecv_from_name[MAXLINE];
int new_file = -1 get_ip_statue = -1;
/**************文件传输相关变量结束*************/
int err;
static int retvalue = 0 c_icon = -1;
//static int ifshow=-1;
char buf[MAXLINE];
int inet_pton(int af const char *src void *dst);
static int sockfd n;

static int connect_ser(char server_ip[] int server_port);
static void show_login();

void init_list_name()
{
int i = 0;
for (i = 0; i < MAXLINE; i++) {
bzero(list_name[i] MAXLINE);
strcpy(list_name[i] “null“);
}
}

void init_receive_msg_buf_name()
{
int i = 0;
for (i = 0; i < MAXLINE; i++) {
bzero(receive_msg_buf_name[i] MAXLINE);
strcpy(receive_msg_buf_name[i] “null“);
}
}

/* 列表代码开始 */

enum {
COLUMN = 0
NUM_COLS
};
GtkWidget *view;
GtkWidget *label_myname;
char count_online[100];
void on_changed(GtkWidget * widget gpointer statusbar)
{

GtkTreeIter iter;
GtkTreeModel *model;
char *value;
if (gtk_tree_selection_get_selected(GTK_TREE_SELECTION(widget) &model &iter)) {

gtk_tree_model_get(model &iter COLUMN &value -1);
gtk_statusbar_push(GTK_STATUSBAR(statusbar) gtk_statusbar_get_context_id(GTK_STATUSBAR(statusbar) value) value);
char win_name[MAXLINE];
sprintf(win_name “%s+正在和+%s+聊天\n“ myname value);
int i = 0;
for (i = 0; i < MAXLINE; i++) {
if (strcmp(receive_msg_buf_name[i] value) == 0) {
return;
}
}

if (strcmp(value count_online) != 0 && strcmp(value “离线好友(0)“) != 0 && strcmp(value “获取列表失败!请重新登录!“) != 0) {
for (i = 0; i < MAXLINE; i++) {
if (strcmp(receive_msg_buf_name[i] “null“)
    == 0) {
strcpy(receive_msg_buf_name[i] value);
break;
}
}

          //pthread_t show_chat_tid;
          //void *win_title = (void *)win_name; //类型转换
        //void *sockfe = (void *)sockfd; //类型转换

//pthread_create(&ntid NULL thr_fn sockfe);
         //pthread_create(&show_chat_tid NULL show_chat_window_thr NULL);
show_chat_window(win_name);
                             


}
g_free(value);
}

}

static void remove_all()
{
GtkTreeStore *treestore;

treestore = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(view

评论

共有 条评论