资源简介
此为Linux课程设计,qq模拟聊天,可群聊私聊,采用TCP协议,没有GUI

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#define MAX_CLIENT 8
#define BUFFER_SIZE 1024
#define SI_CMD “.si“
#define RETURN_CMD “.return“
char client_name[BUFFER_SIZE];
int check=1;
struct sockaddr_in server_addr;
int server_sock_fd;
char recv_msg[BUFFER_SIZE];
char input_msg[BUFFER_SIZE];
char qmsg[BUFFER_SIZE];
char smsg[MAX_CLIENT][BUFFER_SIZE];
int qm;
//int frist=0;
int sm[MAX_CLIENT];
char checkk[2][BUFFER_SIZE]={{“send“}{“show“}};
//fd_set client_fd_set;
//struct timeval tv;
void siliao()
{
system(“clear“);
fd_set client_fd_set;
struct timeval tv;
if(send(server_sock_fd checkk[1] BUFFER_SIZE 0) == -1)
{
perror(“查看在线人出错!\n“);
}
bzero(recv_msg BUFFER_SIZE);
long byte_num = recv(server_sock_fd recv_msg BUFFER_SIZE 0);
if(byte_num > 0)
{
if(byte_num > BUFFER_SIZE)
{
byte_num = BUFFER_SIZE;
}
recv_msg[byte_num] = ‘\0‘;
printf(“%s\n“ recv_msg);
}
else if(byte_num < 0)
{
printf(“接受消息出错!\n“);
}
else
{
printf(“服务器端退出!\n“);
close(server_sock_fd);
exit(0);
}
printf(“输入私聊对象序号\n“);
char a[2];
scanf(“%s“a);
int se=a[0]-48;
if(sm[se]==1)
{
printf(“历史消息\n%s\n“smsg[se]);
bzero(smsg[se]BUFFER_SIZE);
sm[se]=0;
}
//a[1]=‘ ‘;
//printf(“%s\n“a);
while(1)
{
tv.tv_sec = 1;
tv.tv_usec = 0;
FD_ZERO(&client_fd_set);
FD_SET(STDIN_FILENO &client_fd_set);
FD_SET(server_sock_fd &client_fd_set);
select(server_sock_fd + 1 &client_fd_set NULL NULL &tv);
if(FD_ISSET(STDIN_FILENO &client_fd_set))
{
bzero(input_msg BUFFER_SIZE);
//fgets(input_msg BUFFER_SIZE stdin);
scanf(“%s“input_msg);
if(strcmp(input_msg RETURN_CMD) == 0)
break;
char inmsg[BUFFER_SIZE];
bzero(inmsg BUFFER_SIZE);
strcat(inmsgcheckk[0]);
//printf(“%s\n“inmsg);
strcat(inmsga);
//printf(“%s\n“inmsg);
strcat(inmsg“ “);
//printf(“%s\n“inmsg);
strcat(inmsginput_msg);
//printf(“%s\n“inmsg);
if(send(server_sock_fd inmsg BUFFER_SIZE 0) == -1)
{
perror(“发送消息出错!\n“);
}
//printf(“send success\n“);
}
if(FD_ISSET(server_sock_fd &client_fd_set))
{
bzero(recv_msg BUFFER_SIZE);
long byte_num = recv(server_sock_fd recv_msg BUFFER_SIZE 0);
char dest[10] = {““};
//printf(“%s\n“ recv_msg);
strncpy(dest recv_msg 1);
if(byte_num > 0)
{
//printf(“sdxx%s\n“dest);
if(byte_num > BUFFER_SIZE)
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7125 2018-12-27 16:31 linux C语言 QQ模拟聊天\lc6.c
文件 8966 2018-12-27 16:15 linux C语言 QQ模拟聊天\ls6.c
目录 0 2019-06-14 10:32 linux C语言 QQ模拟聊天\
- 上一篇:C++期末的复习资料,很好用
- 下一篇:C语言-银行管理系统.zip
相关资源
- LINUX下命令行界面的C语言细胞游戏
- 尚观培训linux许巍老师关于c语言的课
- 《Linux程序设计》第四版pdf高清电子版
- linux 0.11内核代码
- linux ac108多麦方案驱动(ac108.c)
- 共享内存 读写
- 简易web服务器的设计与实现
- 《LINUX C编程从初学到精通》光盘源码
- Linux那些事儿之我是USB core
- Linux c语言 学生成绩管理系统
- Linux开发工具手册
- Linux操作系统下C语言编程从零开始
- 基于Linux下C语言开发的员工管理系统
- 超级玛丽c++源码win32Linux平台
- UNIX/LINUX下C语言中文短信UCS2编码和解
- 嵌入式工程师必知必会 (完整高清中
- linux-2.6.24.rar
- Linux下C语言操作静态ARP表,包括增加
- c语言 linux 贪吃蛇.doc
- Linux多线程服务端编程:使用muduo C+
- libstdc++.so.6.0.23_linux7
- libstdc++-devel-4.1.2-48.el5.x86_64
- C++版仿Linux文件管理系统
- 基于SDL的贪吃蛇游戏
- 链表栈的基本操作(C语言
- 基于linux C/C++和Qt的聊天程序
- Linux+gladeGTK++C语言+mysql的模仿QQ聊天工
- 嵌入式linuxC语言程序设计基础教程
- C Programming in Linux Linux下C语言
- Linux软件工程师(C语言)实用教程_
评论
共有 条评论