Apa yang harus disiapkan ?
Hal yang harus disiapkan terlebih dahulu sebelum mengikuti step-step di bawah adalah file server.c dan client.c
Untuk source code aplikasi server dalam bahasa C adalah sebagai berikut (simpan dengan nama
server.c) :
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int sock;
struct sockaddr_in server;
int mysock;
char buff[1024];
int rval;
sock = socket(AF_INET, SOCK_STREAM, 0);
if(sock < 0)
{
perror("Failed to create socket");
exit(1);
}
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = htons(5000);
if(bind(sock,(struct sockaddr *)&server, sizeof(server)))
{
perror("bind failed");
exit(1);
}
listen(sock, 5);
do {
mysock = accept(sock, (struct sockaddr *) 0, 0);
if (mysock == -1)
{
perror("accept failed");
}
else
{
memset(buff, 0, sizeof(buff));
if ((rval = recv(mysock, buff, sizeof(buff),0)) < 0)
perror("reading stream message error");
else if (rval == 0)
printf("Ending connection");
else
printf("MSG : %s\n", buff);
printf("Got the message (rval = %d)\n", rval);
close(mysock);
}
}while(1);
return 0;
}
Untuk source code aplikasi client dalam bahasa C adalah sebagai berikut (simpan dengan nama
client.c) :
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#define DATA "Hello World of socket"
int main(int argc, char *argv[])
{
int sock;
struct sockaddr_in server;
struct hostent *hp;
char buff[1024];
sock = socket(AF_INET, SOCK_STREAM, 0);
if(sock < 0)
{
perror("socket failed");
exit(1);
}
server.sin_family = AF_INET;
hp = gethostbyname (argv[1]);
if(hp == 0)
{
perror("gethostbyname failed");
close(sock);
exit(1);
}
memcpy(&server.sin_addr, hp->h_addr, hp->h_length);
server.sin_port = htons(5000);
if(connect(sock,(struct sockaddr *) &server, sizeof(server)) < 0)
{
perror("connect failed");
close(sock);
exit(1);
}
if (send(sock, DATA, sizeof(DATA), 0) < 0)
{
perror("send failed");
close(sock);
exit(1);
}
printf("Sent %s\n", DATA);
close(sock);
return 0;
}
Setelah memiliki file server.c dan client.c ?
Berikut ini langkah-langkah setelah membuat file server.c dan client.c
1. Buka 2 terminal, 1 untuk server dan 1 lagi untuk client
Terminal 1
Terminal 2
2. Masuk ke direktori file server.c dan client.c
Karena saya menyimpan kedua file tersebut pada /Home maka saya tidak perlu melakukan apa-apa. Jika kalian tidak menyimpan di /Home maka dapat dilakukan dengan mengetikkan cd "nama direktori" tanpa tanda petik.
Terminal 1
Terminal 2
3. Compile server.c di terminal 1
Terminal 1
4. Compile client.c di terminal 2
Terminal 2
5. Jalankan server.c
Terminal 1
6. Jalankan client.c dengan penambahan localhost
Terminal 2
7. Tampilan berikut menandakan bahwa sistem client-server telah berhasil dibuat
Terminal 1
Terminal 2
Itulah step-step yang dilakukan untuk membuat Socket Programming
menggunakan bahasa pemrograman C. Jika ingin menghasilkan sistem yang
lebih kompleks, file server.c dan client.c dapat
dimodifikasi sesuai kebutuhan.
Sumber :
1. http://www.youtube.com/watch?v=Q8Eqby-xKKw
Tidak ada komentar:
Posting Komentar