├── README.md ├── client.c └── server.c /README.md: -------------------------------------------------------------------------------- 1 | # TCP-Client-Server-Implementation-in-C -------------------------------------------------------------------------------- /client.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | int main(){ 8 | 9 | char *ip = "127.0.0.1"; 10 | int port = 5566; 11 | 12 | int sock; 13 | struct sockaddr_in addr; 14 | socklen_t addr_size; 15 | char buffer[1024]; 16 | int n; 17 | 18 | sock = socket(AF_INET, SOCK_STREAM, 0); 19 | if (sock < 0){ 20 | perror("[-]Socket error"); 21 | exit(1); 22 | } 23 | printf("[+]TCP server socket created.\n"); 24 | 25 | memset(&addr, '\0', sizeof(addr)); 26 | addr.sin_family = AF_INET; 27 | addr.sin_port = port; 28 | addr.sin_addr.s_addr = inet_addr(ip); 29 | 30 | connect(sock, (struct sockaddr*)&addr, sizeof(addr)); 31 | printf("Connected to the server.\n"); 32 | 33 | bzero(buffer, 1024); 34 | strcpy(buffer, "HELLO, THIS IS CLIENT."); 35 | printf("Client: %s\n", buffer); 36 | send(sock, buffer, strlen(buffer), 0); 37 | 38 | bzero(buffer, 1024); 39 | recv(sock, buffer, sizeof(buffer), 0); 40 | printf("Server: %s\n", buffer); 41 | 42 | close(sock); 43 | printf("Disconnected from the server.\n"); 44 | 45 | return 0; 46 | 47 | } 48 | -------------------------------------------------------------------------------- /server.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | int main(){ 8 | 9 | char *ip = "127.0.0.1"; 10 | int port = 5566; 11 | 12 | int server_sock, client_sock; 13 | struct sockaddr_in server_addr, client_addr; 14 | socklen_t addr_size; 15 | char buffer[1024]; 16 | int n; 17 | 18 | server_sock = socket(AF_INET, SOCK_STREAM, 0); 19 | if (server_sock < 0){ 20 | perror("[-]Socket error"); 21 | exit(1); 22 | } 23 | printf("[+]TCP server socket created.\n"); 24 | 25 | memset(&server_addr, '\0', sizeof(server_addr)); 26 | server_addr.sin_family = AF_INET; 27 | server_addr.sin_port = port; 28 | server_addr.sin_addr.s_addr = inet_addr(ip); 29 | 30 | n = bind(server_sock, (struct sockaddr*)&server_addr, sizeof(server_addr)); 31 | if (n < 0){ 32 | perror("[-]Bind error"); 33 | exit(1); 34 | } 35 | printf("[+]Bind to the port number: %d\n", port); 36 | 37 | listen(server_sock, 5); 38 | printf("Listening...\n"); 39 | 40 | while(1){ 41 | addr_size = sizeof(client_addr); 42 | client_sock = accept(server_sock, (struct sockaddr*)&client_addr, &addr_size); 43 | printf("[+]Client connected.\n"); 44 | 45 | bzero(buffer, 1024); 46 | recv(client_sock, buffer, sizeof(buffer), 0); 47 | printf("Client: %s\n", buffer); 48 | 49 | bzero(buffer, 1024); 50 | strcpy(buffer, "HI, THIS IS SERVER. HAVE A NICE DAY!!!"); 51 | printf("Server: %s\n", buffer); 52 | send(client_sock, buffer, strlen(buffer), 0); 53 | 54 | close(client_sock); 55 | printf("[+]Client disconnected.\n\n"); 56 | 57 | } 58 | 59 | return 0; 60 | } 61 | --------------------------------------------------------------------------------