没什么价值的小程序的头文件(talk程序,用于聊天,远程执行命令。。。)

#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/utsname.h>
#include <sys/sysinfo.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <strings.h>
#include <linux/reboot.h>
#include <syslog.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/select.h>


#define LISTENQ         10
#define MAXLINE         1000
#define SERV_PORT       9999


#define COMMAND         "command"
#define REGISTER        "register"
#define LOGIN           "login"
#define GETFRIENDS      "getfriends"
#define ADDFRIENDS      "addfriends"
#define SHELL           "shell"


#define SYSINFO         "sysinfo"
#define SYSNAME         "sysname"
#define REBOOT          "reboot"
#define POWEROFF        "poweroff"


#define COMNUM          1
#define REGNUM          2
#define LOGNUM          3
#define GETFRINUM       4

#define ADDFRINUM       5

#define SHELLNUM        6
#define NONNUM          7




#define INFONUM         100
#define NAMENUM         101
#define REBOOTNUM       102
#define POWEROFFNUM     103
#define OTHERNUM        104
struct  friends {
        char friendsname[32];
        _Bool   online;
        struct sockaddr useraddr;
};
struct  userfriends {
        char user[32];
        struct  friends *pfriends[10];//every user has at most 10 friends
};
typedef struct  sockaddr        SA;
//do client requist
void    do_client(int sockfd,const char *buf,int n);


void    do_register(const char *buf,int sockfd);
void    do_login(const char *buf,int sockfd);
void    do_getfriends(const char *buf,int sockfd);
void    do_addfriends(const char *buf,int sockfd);
void    do_command(const char *buf,int sockfd);
void    do_shell(const char *buf,int sockfd);
//command:
void    deal_with_command(int number,const char *buf,int sockfd);
void    Reboot(int sockfd);
void    Poweroff(int sockfd);
struct  utsname getname(int sockfd);
struct  sysinfo getinfo(int sockfd);
//socket
int     Socket(int family,int type,int  protocol);
void    Bind(int sockfd,const struct sockaddr *myaddr,socklen_t addrlen);
void    Listen(int sockfd,int backlog);
void    Connect(int sockfd,const struct sockaddr *servaddr,socklen_t addrlen);

int     Select(int maxfdp1,fd_set *readset,fd_set *writeset,fd_set *execptset,struct timeval *timeout);
int Accept(int sockfd,struct sockaddr *cliaddr,socklen_t *addrlen);
void    Close(int fd);
void    Inet_pton(int family,const char *strptr,void *addrptr);
struct in_addr gethostaddr(const char *hostname);
int     create_serv(int port);
int     create_client(const char *hostname,int port);
//local command
void    parsecommand(const char *s);
void    executecmd(const char *s);


void    client_require_and_response(FILE *fp,int sockfd);
//handle error
void    err_ret(const char *fmt,...);
void    err_sys(const char *fmt,...);
void    err_dump(const char *fmt,...);
void    err_msg(const char *fmt,...);
void    err_quit(const char *fmt,...);
//math
int max(int a,int b);
//io function
ssize_t Writen(int fd,const void *vptr,size_t n);
ssize_t Readline(int fd,void *vptr,size_t maxlen);
ssize_t Read(int fd,void *buf,size_t count);


int     makeargv(const char *s,const char *delimiter,char ***argvp);


int     compare_token(const char *token);
char    *firsttok(const char *s,const char *delimiter,char first[]);
//char  *command_string(const char *buf,const char *delimiter);
//char  *login_name(const char *buf,const char *delimiter,char *first);
//char  *login_string(const char *buf,const char *delimiter);
//char  *myname(const char *buf,char *delimiter);
//char  *register_string(const char *buf,const char *delimiter);
void    trapright(const char *buf,char *trapper,char *destbuf);
void    trapleft(char **buf,const char *trapper);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值