• 大小: 907KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: QQ/MSN  

资源简介

西电网信院信息安全专业——网络程序设计大作业——设计一个类似于QQ/MSN的聊天软件

资源截图

代码片段和文件信息

#include 
#include  
#include 
#include 
#include  
#include   
#include 
#include 
#include  
#include 
#include 
#include 

#define len 4096

char username[17] = {0};
char password[17] = {0};

int ctrl = 1;
int ctrl1 = 0;
int ctrl2 = 1;

int user_register(int);
int user_login(int);
void read_loop(void *);//
int send_message(int);
int send_file(int);
int accept_file(int);//
int file_size(char *);//
void duandian();//


int main(){

    struct sockaddr_in servaddr;
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(6666);
    memset(servaddr.sin_zero 0 sizeof(servaddr.sin_zero));

    if(inet_aton(“127.0.0.1“ &servaddr.sin_addr) == -1){
        perror(“iner_aton“);
        exit(1);
    }

    int sockfd = socket(AF_INET SOCK_STREAM 0);
    if(sockfd == -1){
        perror(“socket“);
        exit(1);
    }

    if(connect(sockfd (struct sockaddr *)&servaddr sizeof(servaddr)) == -1){
        perror(“connect“);
        exit(1);
    }

    int x;
    char buf[len];

    while(1){
        printf(“清选择 1.登陆 2.注册\n“);
        scanf(“%d“ &x);
        if(x == 2){
            user_register(sockfd);
            continue;
        }
        else if(x != 1 && x != 2){
            printf(“请重新输入数字\n“);
            continue;
        }
        if(user_login(sockfd))
            break;
    }

    pthread_t thread;
    if(pthread_create(&thread NULL (void *)read_loop (void *)&sockfd) != 0)
        printf(“线程创建失败\n“);

    while(1){
        
        printf(“请选择 1.发信息 2.发文件\n“);
        scanf(“%d“ &ctrl2);
        while(ctrl == 2) {
            continue;
        }
        if(ctrl2 == 1){
            send_message(sockfd);
        }else if(ctrl2 == 2){
            send_file(sockfd);
        }else if(ctrl2 != 3 || ctrl2 != 4){
            printf(“请重新输入数字\n“);
            continue;
        }
    }

    return 0;
}

int user_register(int fd){
    int length;
    char account[len] = {0};
    char feedback[len] = {0};

    printf(“请输入由6~16位小写英文或数字组成的用户名\n“);
    scanf(“%s“ username);
    length = strlen(username);
    for(int i = length; i < 16; i++){
        strcat(username “ “);
    }

    printf(“请输入由6~16位小写英文或数字组成的密码\n“);
    scanf(“%s“ password);
    length = strlen(password);
    for(int i = length; i < 16; i++){
        strcat(password “ “);
    }

    strcpy(account “register    “);
    strcat(account username);
    strcat(account password);
    write(fd account len);

    read(fd feedback len);
    printf(“%s\n“ feedback);
    if(!strcmp(feedback “注册成功“))
        return 1;
    else
        user_register(fd);
    return 0;
}

int user_login(int fd){
    int length;
    char account[len] = {0};
    char feedback[len] = {0};
    char tem[len] = {0};

    printf(“请输入用户名\n“);
    scanf(“%s“ username);
    length = strlen(username);
    for(int i = length; i < 16; i++){
        strcat(username “ 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-12-09 23:39  1618012+1618011班-16180120012(1618012000116180110110)\
     文件      382043  2018-12-09 23:39  1618012+1618011班-16180120012(1618012000116180110110)\1618012+1618011班-16180120012(1618012000116180110110).docx
     文件      570191  2018-12-09 23:37  1618012+1618011班-16180120012(1618012000116180110110)\1618012+1618011班-16180120012(1618012000116180110110).pdf
     目录           0  2018-12-09 18:13  1618012+1618011班-16180120012(1618012000116180110110)\已编译的文件\
     文件       18064  2018-12-09 00:36  1618012+1618011班-16180120012(1618012000116180110110)\已编译的文件\client
     文件       22184  2018-12-09 00:35  1618012+1618011班-16180120012(1618012000116180110110)\已编译的文件\server
     目录           0  2018-12-09 22:39  1618012+1618011班-16180120012(1618012000116180110110)\源文件\
     文件        8339  2018-12-09 16:44  1618012+1618011班-16180120012(1618012000116180110110)\源文件\client.c
     文件       13386  2018-12-09 22:39  1618012+1618011班-16180120012(1618012000116180110110)\源文件\server.c

评论

共有 条评论