资源简介

比较基础的代码,分客户端和服务器.实现客户端的通信,而服务器转发的功能

资源截图

代码片段和文件信息

// 聊天室服务器
//
#include “chatroom.h“

// 发送器结构体
typedef struct Sender {
int  connfd;            // 发送器连接套接字
char nickname[MAX_NCK]; // 发送器昵称
} SENDER;

LIST* g_snds = NULL; // 发送器结构体列表
LIST* g_rcvs = NULL; // 接收器套接字列表
LIST* g_msgs = NULL; // 消息包队列

// 发送器结构体列表互斥量
pthread_mutex_t g_mtx_snds = PTHREAD_MUTEX_INITIALIZER;
// 接收器套接字列表互斥量
pthread_mutex_t g_mtx_rcvs = PTHREAD_MUTEX_INITIALIZER;
// 消息包队列互斥量
pthread_mutex_t g_mtx_msgs = PTHREAD_MUTEX_INITIALIZER;
// 消息包队列非空条件变量
pthread_cond_t  g_cnd_msgs = PTHREAD_COND_INITIALIZER;

// SIGINT信号处理函数
void sigint (int signum) {
printf (“\n服务器:再见!\n“);
exit (0);
}

// 从消息包队列弹出消息
char* pop_msg (void) {
pthread_mutex_lock (&g_mtx_msgs);
while (list_empty (g_msgs))
pthread_cond_wait (&g_cnd_msgs &g_mtx_msgs);
char* msg = (char*)list_pop (g_msgs);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      17583  2015-05-13 18:55  code\bin\chatroom

     文件       7781  2015-05-13 18:55  code\bin\receiver

     文件      11928  2015-05-13 18:55  code\bin\sender

     文件        537  2014-10-23 23:36  code\inc\chatroom.h

     文件        806  2014-07-11 11:42  code\inc\list.h

     文件      10156  2014-10-23 23:39  code\src\chatroom.c

     文件      10252  2015-05-13 18:55  code\src\chatroom.o

     文件       1734  2014-07-11 11:42  code\src\list.c

     文件       2288  2015-05-13 18:55  code\src\list.o

     文件        461  2014-10-23 23:38  code\src\makefile

     文件       2397  2014-10-23 23:39  code\src\receiver.c

     文件       3568  2015-05-13 18:55  code\src\receiver.o

     文件       2604  2014-10-23 23:39  code\src\sender.c

     文件       3836  2015-05-13 18:55  code\src\sender.o

     目录          0  2015-05-13 18:55  code\bin

     目录          0  2015-05-13 18:54  code\inc

     目录          0  2015-05-13 18:55  code\src

     目录          0  2015-05-13 18:54  code

----------- ---------  ---------- -----  ----

                75931                    18


评论

共有 条评论

相关资源