- Creating a socket (at both client and server)
sockfd = socket(AF_INET, SOCK_STREAM, 0);
- Bind, listen at server
struct sockaddr_in server_addr;
//fill in server address
ret = bind(sockfd, (struct sockaddr *) &server_addr, sizeof(server_addr));
listen(sockfd, 10);
- Connect at client
ret = connect(sockfd, (struct sockaddr *) &server_addr, sizeof(server_addr) );
- Accept at server
struct sockaddr_in server_addr, client_addr;
client_addr_len = sizeof(client_addr);
newsockfd = accept(sockfd, (struct sockaddr *) & client_addr, &client_addr_len);
//client address is filled, newsockfd is new socket for this client
- Read and write at both client (from sockfd) and server (from newsockfd)
n = read(sockfd, inputbuf , 255);
n = write(sockfd,inputbuf,strlen(inputbuf));