Skip to content

Instantly share code, notes, and snippets.

@nyannko
Last active December 16, 2017 18:28
Show Gist options
  • Save nyannko/ce518e2202bf7430898a7aa620c4af80 to your computer and use it in GitHub Desktop.
Save nyannko/ce518e2202bf7430898a7aa620c4af80 to your computer and use it in GitHub Desktop.
/************
tcp_server.c
************/
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
int main(int argc, char *argv[]) {
//Create server messages
char server_messages[256];
//Create server socket
int server_socket = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in server_address;
server_address.sin_family = AF_INET;
server_address.sin_port = htons(3400);
server_address.sin_addr.s_addr = INADDR_ANY;
//Bind socket to specified IP and PORT
bind(server_socket, (struct sockaddr*) &server_address, sizeof(server_address));
listen(server_socket, 5);
int client_socket;
client_socket = accept(server_socket, NULL, NULL);
while(1){
//Send messages
recv(client_socket, &server_messages, sizeof(server_messages), 0);
printf("Message from client: %s",server_messages);
send(client_socket, server_messages, sizeof(server_messages), 0);
}
close(server_socket);
return 0;
}
/************
tcp_client.c
************/
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/socket.h>
//Struct for handling internet addresses
#include<netinet/in.h>
int main(int argc, char* argv[]) {
//Create a socket
int network_socket = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in server_address;
server_address.sin_family = AF_INET;
server_address.sin_port = htons(atoi(argv[1]));
//server_address.sin_addr.s_addr = INADDR_ANY;
server_address.sin_addr.s_addr = inet_addr(argv[2]); //set server's address in the second parameter
//Check connection status
int connect_status = connect(network_socket, (struct sockaddr *) &server_address, sizeof(server_address));
if(connect_status == -1) {
printf("error");
}
while(1) {
//Send messages to server
char messages[256];
fgets(messages, 256, stdin);
send(network_socket, messages, sizeof(messages),0);
//Receive data from server
char server_response[256];
recv(network_socket, &server_response, sizeof(server_response), 0);
//Print out the result returned from server
printf("Message from server: %s", server_response);
}
//Close socket
close(network_socket);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment