资源简介
此为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语言员工管理系统
- c++实现的sql基本功能 Linux,win下可运
- Linux环境下——C语言聊天室项目
- 实验五常用开发工具
- 《基于Linux的设备分配及磁盘调度》
- IPMSG飞鸽传书源代码,linux-c语言,有
- Linux下c语言实现对文本内容的三种输
- Linux c语言多线程实现生产者/消费者问
- Linux下硬盘分区读写程序
- linux ext2 文件系统模拟 c语言实现
- 操作系统文件管理系统c++
- 操作系统课程设计 linux文件系统
- linux环境下的QQ聊天系统
- linux局域网聊天软件server+client 源码
- linuxc语言信号量爸爸女儿儿子橘子苹
- linux ftp服务器
- c语言实现linux shell下的cat命令
- 基于Linux系统的聊天程序
- 基于linux系统socket网络五子棋对战
- 网络编程聊天室--操作演示文档
- linux下最小RTSP服务器实现
- Linux虚拟文件系统vfs的模拟代码
- linux终端c编程练习 大富翁游戏
- 嵌入式C语言技术实战开发一书源代码
- Linux- 用C语言实现的简单Web服务器源代
- Linux环境下的文件安全传输(C/C++)
- C和C++ Windows代码移植到Linux
- p2p通信的简单实现c语言
- Linux软件工程师(C语言)实用教程_
- linpop 聊天软件
评论
共有 条评论