Write the simplest TCP communication server. The code is as follows:
#include <iostream> #include <cstring>using namespace std; #include <sys/socket.h> #include <sys/ types.h> #include <netinet/in.h> #include <arpa/inet.h> #include <errno.h> #include <unistd.h >int Main () {/* creates socket*/int sd = socket (af_inet, sock_stream, 0); if (SD = =-1) {cout << "socket creat error" << Endl; cout << errno << ":" << strerror (errno) << endl;exit (-1); }/* Define Address */struct sockaddr_in addr = {0}; addr.sin_family = af_inet; Addr.sin_port = htons (12222); Inet_aton ("192.168.56.11", &addr.sin_addr);/* BIND address */int bd_ret = bind (SD, (struct sockaddr*) &addr, sizeof (a DDR)); if (Bd_ret! = 0) {cout << "socket bind error" << Endl; cout << errno << ":" << strerror (errno) << endl;exit (-1); }/* Listener Client Connection */int ls_ret = Listen (SD, 5); if (Ls_ret! = 0) {cout << "Socket Listen error" << Endl; cout << errno << ":" << strerror (errno) << endl;exit (-1); }/* Get connection */struct sockaddr_in cli_addr = {0}; unsigned int addr_len = sizeof (CLI_ADDR); int sd_cli = Accept (SD, (struct sockaddr*) &cli_addr, &addr_len); if (sd_cli = =-1) {cout << "socket accept error" << Endl; cout << errno << ":" << strerror (errno) << endl;exit (-1); }/* Communication */char recv_buf[100] = {0}; int recv_count = recv (Sd_cli, Recv_buf, 55, 0); if (recv_count <= 0) {cout << "socket recv error" << Endl; cout << errno << ":" << strerror (errno) << endl;exit (-1); } cout << "Client information" << Endl; cout << "CLI IP:" << Inet_ntoa (CLI_ADDR.SIN_ADDR) << Endl; cout << "CLI port:" << ntohs (cli_addr.sin_port) << Endl; cout << "recv buf:" << recv_buf << endl;/* exit */Close (SD_CLI); Close (SD); return 0;}
Linux network Programming the simplest TCP communication server