intermediate

This commit is contained in:
3lswear
2022-01-25 08:00:36 +03:00
parent a16d22aa87
commit 53ebb0ddfe
6 changed files with 212 additions and 31 deletions

View File

@@ -53,4 +53,4 @@ public:
~Header();
};
#endif
#endif

View File

@@ -75,33 +75,44 @@ void Server::newConnection(int fd)
void Server::start(void)
{
Socket serverSocket(AF_INET, SOCK_STREAM, 0, _port, "127.0.0.1");
char buff[BUFFSIZE + 1] = {0};
Header header;
int fd_accept;
int code;
/* Socket serverSocket(AF_INET, SOCK_STREAM, 0, _port, "127.0.0.1"); */
/* char buff[BUFFSIZE + 1] = {0}; */
/* Header header; */
/* int fd_accept; */
/* int code; */
/* checkError(serverSocket.init(MAX_CLIENT), "Socket init"); */
/* fd_accept = accept(serverSocket.getSocketFd(), */
/* serverSocket.getSockaddr(), serverSocket.getSocklen()); */
/* checkError(fd_accept, "Initialize client socket"); */
/* checkError(recv(fd_accept, buff, BUFFSIZE, 0), "Receive msg from client"); */
/* std::cout << TURGUOISE << "Receive Header" << ZERO_C << std::endl; */
/* header.setRawData(buff); */
/* code = header.parseRequest(); */
/* header.printHeaderInfo(); */
/* header.sendRespons(fd_accept); */
/* std::cout << BLUE << header.getReasonPhrase(code) << ZERO_C << std::endl; */
/* close(fd_accept); */
/* close(serverSocket.getSocketFd()); */
Socket server_sock(AF_INET, SOCK_STREAM, 0, _port, "127.0.0.1");
char buf[BUFFSIZE + 1] = {0};
Header header[MAX_CLIENT];
int fd;
int n;
int nfds;
int client_sock;
int epollfd;
#define THREAD_NUM 100
epollfd = epoll_create1(0);
struct epoll_event ev;
ev.events = EPOLLIN | EPOLLOUT | EPOLLET;
checkError(serverSocket.init(MAX_CLIENT), "Socket init");
fd_accept = accept(serverSocket.getSocketFd(),
serverSocket.getSockaddr(), serverSocket.getSocklen());
checkError(fd_accept, "Initialize client socket");
checkError(recv(fd_accept, buff, BUFFSIZE, 0), "Receive msg from client");
std::cout << TURGUOISE << "Receive Header" << ZERO_C << std::endl;
header.setRawData(buff);
code = header.parseRequest();
header.printHeaderInfo();
header.sendRespons(fd_accept);
std::cout << BLUE << header.getReasonPhrase(code) << ZERO_C << std::endl;
close(fd_accept);
close(serverSocket.getSocketFd());
//-----------------------------------------------попытка добавить epoll------------------
// Socket serverSocket(AF_INET, SOCK_STREAM, 0, _port);
// char buff[BUFFSIZE + 1] = {0};
// Header header[MAX_CLIENT];
// int fd;
// int n;
// int nfds;
// int _clientSocket;
// nfds = 0;
// n = 0;

View File

@@ -63,6 +63,7 @@ namespace config
if (file.eof())
{
std::cout << "Tokens exhausted" << std::endl;
throw std::logic_error("Tokens exhausted");
}
prev_pos = file.tellg();
c = getWithoutWhiteSpace();

View File

@@ -10,8 +10,8 @@ int main(int argc, char **argv)
Server server;
server.readConfig();
// server.setupConfig();
// server.start();
server.setupConfig();
server.start();
return (0);