📄 client.cpp
字号:
#include "client.h"client::client():status(F_NEW){ bzero(name, sizeof(name)); bzero(recvhead, sizeof(recvhead)); flagStatus = 0x10;}client::~client(){}int client::send(char* buff, int outbytes){ int n = write(clifd, buff, outbytes); if(n == -1) { if(errno == EWOULDBLOCK) { return -1; } else if(errno == EINTR) { return -2; } else { perror("sendmsg"); return -3; } } return n;}int client::recv(char* buff, int inbytes){ int n; n = read(clifd, buff, inbytes); if(n == -1) { if(errno == EWOULDBLOCK) { return -1; } if(errno == EINTR) { return -2; } else { perror("recvmsg"); return -3; } } if(n == 0) { status = F_LEAVE; return 0; } buff[n] = '\0'; return n;}int client::getname(){ int n; status = F_ESTABLISHED; n = read(clifd, name, sizeof(name)); if(n == -1) { if(errno == EWOULDBLOCK) { return -1; } else if(errno == EINTR) { return -2; } else { perror("recv name"); return -3; } } name[n] = '\0'; char buff[MAX_LEN]; snprintf(buff, MAX_LEN, "Client %s enter the serve\n", name); cout << buff; strncpy(recvhead, name, sizeof(recvhead)); strncat(recvhead, " said:", sizeof(recvhead) - 1); return n;}void client::nonblock(){ int flags; if((flags = fcntl(clifd, F_GETFL, 0)) < 0) { perror("fcntl listenfd"); exit(1); } if(fcntl(clifd, F_SETFL, flags | O_NONBLOCK) < 0) { perror("fcntl listenfd"); exit(1); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -