pertemuan 12 membuat program client dan server pada win32 console application
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 PresentationTRANSCRIPT
![Page 1: Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/1.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/2.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/3.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/4.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/5.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/6.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/7.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/8.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/9.jpg)
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( <ime );sprintf(sBuf,"The time is %s\n", ctime(<ime ));
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/10.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/11.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/12.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/13.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/14.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/15.jpg)
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](https://reader036.vdokumen.com/reader036/viewer/2022082712/56814495550346895db13200/html5/thumbnails/16.jpg)
16
Latihan
3. Kompilasi kedua contoh program diatas dengan compiler yang lain misalnya : Dev C++, atau Borland C++ (dan modifikasi bila perlu)