Pertama, kita akan membuat server berikut ini kode yang perlu diketikkan
#include<stdio.h>#include<netinet/in.h>#include<sys/types.h>#include<sys/socket.h>#include<netdb.h>#include<stdlib.h>#include<string.h>#define MAX 80#define PORT 43454#define SA struct sockaddrvoid func(int sockfd){char buff[MAX];int n;for(;;){bzero(buff,MAX);read(sockfd,buff,sizeof(buff));printf("From client: %s\t To client : ",buff);bzero(buff,MAX);n=0;while((buff[n++]=getchar())!='\n');write(sockfd,buff,sizeof(buff));if(strncmp("exit",buff,4)==0){printf("Server Exit...\n");break;}}}int main(){int sockfd,connfd,len;struct sockaddr_in servaddr,cli;sockfd=socket(AF_INET,SOCK_STREAM,0);if(sockfd==-1){printf("socket creation failed...\n");exit(0);}elseprintf("Socket successfully created..\n");bzero(&servaddr,sizeof(servaddr));servaddr.sin_family=AF_INET;servaddr.sin_addr.s_addr=htonl(INADDR_ANY);servaddr.sin_port=htons(PORT);if((bind(sockfd,(SA*)&servaddr, sizeof(servaddr)))!=0){printf("socket bind failed...\n");exit(0);}elseprintf("Socket successfully binded..\n");if((listen(sockfd,5))!=0){printf("Listen failed...\n");exit(0);}elseprintf("Server listening..\n");len=sizeof(cli);connfd=accept(sockfd,(SA *)&cli,&len);if(connfd<0){printf("server acccept failed...\n");exit(0);}elseprintf("server acccept the client...\n");func(connfd);close(sockfd);}
source : http://mcalabprogram.blogspot.com/2012/01/tcp-sockets-chat-applicationserver.html
Setelah itu kita membuat client dengan kode berikut :
#include<stdio.h>#include<netinet/in.h>#include<sys/types.h>#include<sys/socket.h>#include<netdb.h>#include<string.h>#include<stdlib.h>#define MAX 80#define PORT 43454#define SA struct sockaddrvoid func(int sockfd){char buff[MAX];int n;for(;;){bzero(buff,sizeof(buff));printf("Enter the string : ");n=0;while((buff[n++]=getchar())!='\n');write(sockfd,buff,sizeof(buff));bzero(buff,sizeof(buff));read(sockfd,buff,sizeof(buff));printf("From Server : %s",buff);if((strncmp(buff,"exit",4))==0){printf("Client Exit...\n");break;}}}int main(){int sockfd,connfd;struct sockaddr_in servaddr,cli;sockfd=socket(AF_INET,SOCK_STREAM,0);if(sockfd==-1){printf("socket creation failed...\n");exit(0);}elseprintf("Socket successfully created..\n");bzero(&servaddr,sizeof(servaddr));servaddr.sin_family=AF_INET;servaddr.sin_addr.s_addr=inet_addr("127.0.0.1");servaddr.sin_port=htons(PORT);if(connect(sockfd,(SA *)&servaddr,sizeof(servaddr))!=0){printf("connection with the server failed...\n");exit(0);}elseprintf("connected to the server..\n");func(sockfd);close(sockfd);}
source : http://mcalabprogram.blogspot.com/2012/01/tcp-sockets-chat-applicationserver.html
Setelah selesai membuat file kode bahasa C, buka terminal, ubah direktori ke lokasi file .c, kemudian compile dan run file .c, gunakan perintah berikut :
gcc -o nama_aplikasi nama_file.c
./nama_aplikasi
Setelah server dijalankan, buka terminal baru, ubah direktori seperti langkah sebelumnya, kemudian compile dan run dengan cara yang sama seperti langkah sebelumnya
Sekarang telah muncul tempat untuk mengisi pesan di kedua jendela terminal
Sekarang kita coba menulis pesan "halo :D" pada client, coba perhatikan yang muncul di server
Pesan dari client muncul di jendela server, kemudian kita coba mengirim pesan balik "halo juga :D"
Pesan dari server muncul di jendela client, sekarang kita bisa bercakap - cakap sendiri jika sedang sepi hahaha, semoga bermanfaat :Dsumber : http://mcalabprogram.blogspot.com/2012/01/tcp-sockets-chat-applicationserver.html
bang. code ini, clientnya bisa lebih dari 1 atau hanya
BalasHapuskomunikasi antara 1 client ke server
bisa banyak
Hapusuntuk bisa ke banyak client apa yang dirubah ya ? soalnya sudah saya otak atik tidak bisa, hehe
BalasHapus