| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #ifndef _MYCHAT_H
- #define _MYCHAT_H
- #include "debug.h"
- #include "dlist.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <strings.h>
-
- #include <fcntl.h>
- #include <unistd.h>
- #include <signal.h>
- #include <pthread.h>
- #include <errno.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #define BLACKLOG 5
- #define UDP_MAXSIZE 512
- #define TCP_MAXSIZE 5*1024
- /*UDP收到客户端的消息*/
- struct msg_udp
- {
- int type_udp; //类型
- char self_name[20]; //自己的名字
- char aim_name[20]; //目标名字
- unsigned int data_size; //数据大小0 ~ 65535
- char data[UDP_MAXSIZE+1]; //数据
- struct sockaddr_in self_addr_udp; //自己udp地址
- struct sockaddr_in self_addr_tcp; //自己tcp地址
- struct sockaddr_in aim_addr_udp; //目标地址
- };
- /*添加尾部的结构体*/
- struct servmsg_udp
- {
- struct msg_udp recvmsg; //UDP信息
-
- struct list_head servmsg_udp_list;
- };
- /*UDP消息类型*/
- enum msg_udp_type
- {
- LOG_IN = 1, //登录 --1
- REFRESH, //要求刷新用户在线用户(重新打印在线用户) --2
- CHAT_ONE, //私聊消息 --3
- CHAT_ALL, //群聊消息 --4
- DOWNLOAD, //从服务器下载文件(下载之前先打印文件列表) --5
- UPLOAD, //上传文件到服务器 --6
- OFFLINE, //下线通知 --7
- OVER, //服务器发送本次消息结束 --8
- ERROR, //重复登录 --9
- FILE_NAME, //发送文件列表 --10
- FILE_ERROR, //选择文件名失败 --11
- NO_HANDLE //不做处理 --12
- };
- /*服务器接收消息后,创建的在线用户列表*/
- struct user_info
- {
- char user_name[20]; //用户名字
- int id; //id //是否在线
- struct sockaddr_in cli_addr_udp; //客户端udp地址
- struct sockaddr_in cli_addr_tcp; //客户端tcp地址
- struct list_head user_info_list;
- };
- /*********************TCP结构体******************************/
- /*TCP收到客户端的消息*/
- struct msg_tcp
- {
- int type_tcp; //类型
- char self_name[20]; //自己的名字
- char aim_name[20]; //目标名字
- unsigned int data_size; //数据大小0 ~ 65535
- unsigned int alto_size; //总大小0 ~ 65535
- unsigned int data_sequence; //数据顺序
- char data[TCP_MAXSIZE+1]; //数据
- struct sockaddr_in self_addr_tcp; //自己tcp地址
- struct sockaddr_in aim_addr_tcp; //目标地址
- };
- /*添加尾部的结构体*/
- struct servmsg_tcp
- {
- struct msg_tcp recvmsg; //TCP信息
-
- struct list_head servmsg_tcp_list;
- };
- /*TCP消息类型*/
- enum msg_tcp_type
- {
- DOWN_IF = 20, //下载询问
- DOWN_YES, //允许下载
- DOWN_NO, //拒绝下载
- DOWN_START, //开始下载
- DOWN_READY, //开始下载
- DOWN_LOADING, //正在下载
- DOWN_END, //下载结束
- UP_YES, //允许上传
- UP_NO //拒绝上传
- };
- struct down_info
- {
- char user_name[20]; //用户名字
- int file_wrfd; //文件fd
- struct sockaddr_in cli_addr_tcp; //客户端tcp地址
- struct list_head down_info_list;
- };
- #endif
|