pertemuan 12 membuat program client dan server pada win32 console application

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

Upload: werner

Post on 11-Jan-2016

35 views

Category:

Documents


0 download

DESCRIPTION

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 : - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

1

Pertemuan 12 Membuat Program Client dan Server pada Win32 Console

Application

Matakuliah : H0483 – Network Programming

Tahun : 2008

Versi : 2.0

Page 2: 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

Page 3: Pertemuan 12 Membuat Program Client dan 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++

Page 4: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

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

Page 5: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

5

Membuat Program DayTimeServer dengan Microsoft VC++ 6.0

• Pilih : A “Hello World” Application kemudian klik Finish

Page 6: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

6

Membuat Program DayTimeServer dengan Microsoft VC++ 6.0

• Open file: DayTimeServerDos.cpp kemudian edit file tersebut seperti sbb:

Page 7: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

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

}

Page 8: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

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

}

Page 9: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

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;}

Page 10: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

10

Membuat Program DayTimeServer dengan Microsoft VC++ 6.0

• Tambahkan : wsock32.lib pada Project settings VC++ sbb:

Page 11: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

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:

Page 12: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

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

Page 13: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

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;}

Page 14: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

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

Page 15: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

15

Latihan

1. Modifikasi Contoh program pada power point sebelumnya, agar nomor Port dan nomor IP nya bisa dirubah-ubah pada command line. (contoh: DayTimeServer <Port> <IP>)

2. 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

Page 16: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application

16

Latihan

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