C++を使用して簡単なTCPサーバの作成を実現する方法
1329 ワード
シンプルなTCPサーバ実装
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define SERVER_PORT 7000
void sys_err(const char *str)
{
perror(str);
exit(1);
}
int main(int agrc, char *argv[]){
int ret;
char buf[BUFSIZ];
//
int lfd = 0, cfd=0;
// addr
struct sockaddr_in server_addr, client_addr;
socklen_t client_addr_len;
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(SERVER_PORT);
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
// socket
lfd = socket(AF_INET, SOCK_STREAM, 0);
if(lfd == -1){
sys_err("socket error");
}
//
bind(lfd, (struct sockaddr *)&server_addr, sizeof(server_addr));
//
listen(lfd, 128);
//
client_addr_len = sizeof(client_addr);
cfd = accept(lfd, (struct sockaddr *)&client_addr, &client_addr_len);
if (cfd == -1){
sys_err("accept error");
}
while(1){
//
ret = read(cfd, buf, sizeof(buf));
write(STDOUT_FILENO, buf, ret);
for (int i=0; i