1 / 16

Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application. Matakuliah : H0483 – Network Programming Tahun : 2008 Versi : 2.0. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :

werner
Download Presentation

Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pertemuan 12Membuat Program Client dan Server pada Win32 Console Application Matakuliah : H0483 – Network Programming Tahun : 2008 Versi : 2.0

  2. Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Mendemonstrasikan program aplikasi Client Server pada Win32 Console Application

  3. Outline Materi • Kasus: DayTimeServer dan DayTimeClient • Membuat program Client di Win32 Console Application dengan menggunakan Compiler • Micosoft Visual C++ 6.0 • Borland C++ 5.0 • Dev C++ • Membuat program Server di Win32 Console Application dengan menggunakan Compiler • Micosoft Visual C++ 6.0 • Borland C++ 5.0 • Dev C++

  4. Membuat Program DayTimeServer dengan Microsoft VC++ 6.0 • Langkah-Langkah : • Jalankan VC++ kemudian pilih menu File  New • Masukkan nama Project dan Lokasi / Folder untuk menyimpan • project tersebut • Kemudian pilih Win32 Console Application

  5. Membuat Program DayTimeServer dengan Microsoft VC++ 6.0 • Pilih : A “Hello World” Application kemudian klik Finish

  6. Membuat Program DayTimeServer dengan Microsoft VC++ 6.0 • Open file: DayTimeServerDos.cpp kemudian edit file tersebut seperti sbb:

  7. Membuat Program DayTimeServer dengan Microsoft VC++ 6.0 #include "stdafx.h" #include <winsock2.h> #include <time.h> int main(int argc, char* argv[]) { WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); struct sockaddr_in servAddr; SOCKET sktServ; sktServ = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(sktServ == INVALID_SOCKET){ printf("Error in creating socket [%i]\n", WSAGetLastError()); WSACleanup(); return(-1); }

  8. Membuat Program DayTimeServer dengan Microsoft VC++ 6.0 memset(&servAddr, 0, sizeof(struct sockaddr_in)); servAddr.sin_family = AF_INET; servAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); servAddr.sin_port = htons(6789); if(bind(sktServ, (struct sockaddr*)&servAddr, sizeof(servAddr)) == SOCKET_ERROR){ printf("Error in binding socket [%i]\n", WSAGetLastError()); closesocket(sktServ); WSACleanup(); return(-1); } if(listen(sktServ, 4) == SOCKET_ERROR){ printf("Error in listen socket [%i]\n", WSAGetLastError()); closesocket(sktServ); WSACleanup(); return(-1); }

  9. Membuat Program DayTimeServer dengan Microsoft VC++ 6.0 struct sockaddr_in clientAddr; int clientAddrLen = sizeof(clientAddr); SOCKET sktToClient; sktToClient = accept(sktServ, (struct sockaddr*)&clientAddr, &clientAddrLen); if(sktToClient == INVALID_SOCKET){ printf("Error in accept client [%i]\n", WSAGetLastError()); closesocket(sktServ); WSACleanup(); return(-1); } int sent; char sBuf[1024] = ""; time_t ltime; time( &ltime ); sprintf(sBuf,"The time is %s\n", ctime(&ltime )); sent = send(sktToClient, sBuf, strlen(sBuf), 0); if(sent == 0) printf("Client closes connection\n"); else if(sent < 0) printf("Error in sending out data [%i]\n", WSAGetLastError()); closesocket(sktServ); closesocket(sktToClient); WSACleanup(); return 0; }

  10. Membuat Program DayTimeServer dengan Microsoft VC++ 6.0 • Tambahkan : wsock32.lib pada Project settings VC++ sbb:

  11. Membuat Program DayTimeServer dengan Microsoft VC++ 6.0 • Kemudian compilasi program ! • Setelah selesai, buat DayTimeClient nya • Tahap-tahapnya sama dengan DayTime Server diatas, tetapi code / programnya adalah sbb:

  12. Membuat Program DayTimeClient dengan Microsoft VC++ 6.0 #include "stdafx.h" #include <stdio.h> #include <winsock2.h> int main(int argc, char* argv[]) { WSADATA wsaData; WSAStartup(MAKEWORD(2,2), &wsaData); SOCKET sktClient; sktClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(sktClient == INVALID_SOCKET){ printf("Error in creating socket [%i]\n", WSAGetLastError()); WSACleanup(); return(-1); } // Connect to a server. struct sockaddr_in clientAddr; clientAddr.sin_family = AF_INET; clientAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); clientAddr.sin_port = htons(6789);

  13. Membuat Program DayTimeClient dengan Microsoft VC++ 6.0 if(connect(sktClient, (struct sockaddr*)&clientAddr, sizeof(clientAddr)) == SOCKET_ERROR){ printf("Error in connecing server [%i]\n", WSAGetLastError()); closesocket(sktClient); WSACleanup(); return(-1); } int recved; char rBuf[1024] = ""; recved = recv(sktClient, rBuf, 1024, 0); if(recved > 0) printf("%s\n", rBuf); else if(recved == 0) printf("Server closes connection\n"); else{ printf("Error in receiving data [%i]\n", WSAGetLastError()); closesocket(sktClient); WSACleanup(); return(-1); } closesocket(sktClient); WSACleanup(); return 0; }

  14. Membuat Program DayTimeClient dengan Microsoft VC++ 6.0 • Tahap Selanjutnya : Test program • Jalankan program server terlebih dahulu • Kemudian jalankan program Clientnya • Kedua program diatas hanya jalan pada satu komputer karena menggunakan local IP address 127.0.0.1

  15. Latihan • Modifikasi Contoh program pada power point sebelumnya, agar nomor Port dan nomor IP nya bisa dirubah-ubah pada command line. (contoh: DayTimeServer <Port> <IP>) • Contoh Program pada Power Point sebelumnya adalah Program DayTimeServer dan DayTimeClient dengan menggunakan protocol TCP/IP. Coba rubah/modifikasi agar kedua program tersebut menggunakan protokol UDP

  16. Latihan • Kompilasi kedua contoh program diatas dengan compiler yang lain misalnya : Dev C++, atau Borland C++ (dan modifikasi bila perlu)

More Related