Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Matakuliah : H0483 – Network Programming Tahun : 2008 Versi : 2.0

Presentasi serupa


Presentasi berjudul: "Matakuliah : H0483 – Network Programming Tahun : 2008 Versi : 2.0"— Transcript presentasi:

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

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

3 Kasus: DayTimeServer dan DayTimeClient
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

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(" "); 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());

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(" "); 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()); 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

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)


Download ppt "Matakuliah : H0483 – Network Programming Tahun : 2008 Versi : 2.0"

Presentasi serupa


Iklan oleh Google