• 大小: 5KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: C/C++
  • 标签: linux  

资源简介

此为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模拟聊天\

评论

共有 条评论