dalam program sederhana ini, klien mengkoneksi ke server, lalu server. server mengirim message hello world yang lalu di-print oleh klien
1. kode server
/****************** SERVER CODE ****************/
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
int main(){
int welcomeSocket, newSocket;
char buffer[1024];
struct sockaddr_in serverAddr;
struct sockaddr_storage serverStorage;
socklen_t addr_size;
/*---- Membuat soket. argumennya adalah: ----*/
/* 1) Internet domain 2) Stream socket 3) Default protocol (TCP dalam kasus ini) */
welcomeSocket = socket(PF_INET, SOCK_STREAM, 0);
/*---- Mengatur setting dari struct server addres ----*/
/* Address family = Internet */
serverAddr.sin_family = AF_INET;
/* Mengeset port number, memakai fungsi htons */
serverAddr.sin_port = htons(7891);
/* Mengeset IP address ke localhost */
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
/* Mengeset semua bit padding field menjadi 0 */
memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero);
/*---- mem-bind address struct ke soket ----*/
bind(welcomeSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr));
/*---- me-listen soket, dengan maksimal antrian 5 connection requests ----*/
if(listen(welcomeSocket,5)==0)
printf("Listening\n");
else
printf("Error\n");
/*---- Accept call membuat soket baru untuk koneksi masuk ----*/
addr_size = sizeof serverStorage;
newSocket = accept(welcomeSocket, (struct sockaddr *) &serverStorage, &addr_size);
/*---- Mengirim message ke soket koneksi masuk ----*/
strcpy(buffer,"Hello World\n");
send(newSocket,buffer,13,0); return 0; }
2. Kode klien
/****************** CLIENT CODE ****************/ #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <string.h> int main(){ int clientSocket; char buffer[1024]; struct sockaddr_in serverAddr; socklen_t addr_size; /*---- Create the socket. The three arguments are: ----*/ /* 1) Internet domain 2) Stream socket 3) Default protocol (TCP in this case) */ clientSocket = socket(PF_INET, SOCK_STREAM, 0); /*---- Configure settings of the server address struct ----*/ /* Address family = Internet */ serverAddr.sin_family = AF_INET; /* Set port number, using htons function to use proper byte order */ serverAddr.sin_port = htons(7891); /* Set IP address to localhost */ serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); /* Set all bits of the padding field to 0 */ memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero); /*---- Connect the socket to the server using the address struct ----*/ addr_size = sizeof serverAddr; connect(clientSocket, (struct sockaddr *) &serverAddr, addr_size); /*---- Read the message from the server into the buffer ----*/ recv(clientSocket, buffer, 1024, 0); /*---- Print the received message ----*/ printf("Data received: %s",buffer); return 0; }
1. kode server
/****************** SERVER CODE ****************/
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
int main(){
int welcomeSocket, newSocket;
char buffer[1024];
struct sockaddr_in serverAddr;
struct sockaddr_storage serverStorage;
socklen_t addr_size;
/*---- Membuat soket. argumennya adalah: ----*/
/* 1) Internet domain 2) Stream socket 3) Default protocol (TCP dalam kasus ini) */
welcomeSocket = socket(PF_INET, SOCK_STREAM, 0);
/*---- Mengatur setting dari struct server addres ----*/
/* Address family = Internet */
serverAddr.sin_family = AF_INET;
/* Mengeset port number, memakai fungsi htons */
serverAddr.sin_port = htons(7891);
/* Mengeset IP address ke localhost */
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
/* Mengeset semua bit padding field menjadi 0 */
memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero);
/*---- mem-bind address struct ke soket ----*/
bind(welcomeSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr));
/*---- me-listen soket, dengan maksimal antrian 5 connection requests ----*/
if(listen(welcomeSocket,5)==0)
printf("Listening\n");
else
printf("Error\n");
/*---- Accept call membuat soket baru untuk koneksi masuk ----*/
addr_size = sizeof serverStorage;
newSocket = accept(welcomeSocket, (struct sockaddr *) &serverStorage, &addr_size);
/*---- Mengirim message ke soket koneksi masuk ----*/
strcpy(buffer,"Hello World\n");
send(newSocket,buffer,13,0); return 0; }
2. Kode klien
/****************** CLIENT CODE ****************/ #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <string.h> int main(){ int clientSocket; char buffer[1024]; struct sockaddr_in serverAddr; socklen_t addr_size; /*---- Create the socket. The three arguments are: ----*/ /* 1) Internet domain 2) Stream socket 3) Default protocol (TCP in this case) */ clientSocket = socket(PF_INET, SOCK_STREAM, 0); /*---- Configure settings of the server address struct ----*/ /* Address family = Internet */ serverAddr.sin_family = AF_INET; /* Set port number, using htons function to use proper byte order */ serverAddr.sin_port = htons(7891); /* Set IP address to localhost */ serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); /* Set all bits of the padding field to 0 */ memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero); /*---- Connect the socket to the server using the address struct ----*/ addr_size = sizeof serverAddr; connect(clientSocket, (struct sockaddr *) &serverAddr, addr_size); /*---- Read the message from the server into the buffer ----*/ recv(clientSocket, buffer, 1024, 0); /*---- Print the received message ----*/ printf("Data received: %s",buffer); return 0; }