Hellow blogger….
Untuk tulisan berikut ini saya akan membuat laporan tentang pemrograman dengan C++, untuk program yang akan saya buat masih sama dengan tugas yang kemarin yaitu membuat server – Client, tapi yang membuat beda disini adalah untuk Server tetap menggunakan server dari VB.6 yang sudah kita buat, dan untuk membuat Client nya menggunakan pemrograman C++.
Berikut adalah source code C++ untuk Client :
#define _CRT_SECURE_NO_DEPR]ECATE
int StartClient(unsigned short port, const char* serverName);
void EndClient(int clientSocket);
#include <winsock2.h>
#include <iostream>
using namespace std;
int main()
{
cout << "\n\n"
<< "Client: Memulai sambungan ke server\n";
HANDLE hConsole;
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, 2);
// -----------------------------------------------------
int mySocket;
mySocket = StartClient(70, "localhost");
if (mySocket == -1)
{
EndClient(mySocket);
return 1;
}
int pilihan;
int msg;
char Nama[10];
char ID[10];
string ip;
{cout<<"Nama = ";
cin>>Nama;
cout<<"Pasword = ";
cin>>ID;
cout<<Nama;
cout<<ID<<endl;
}
cout<<"1)Mulai Chat\n";
cout<<"2)CANCEL\n";
cin>>pilihan;
if ( pilihan == 2 )
exit (0);
else if (pilihan == 1 )
int nBytes;
#define MAX_MESSAGE_SIZE 4096
char buffer[MAX_MESSAGE_SIZE];
char inMessage[MAX_MESSAGE_SIZE];
cout << "Client: Jika ingin Keluar, Ketik 'exit'\n";
cout<<"Client: Silahkan tulis Pesan !\nClient: > ";
for (;;)
{
gets(buffer);
if (strcmp(buffer, "exit") == 0)
{
break;
}
unsigned long messageSize = strlen(buffer);
messageSize = htonl(messageSize);
if ((nBytes = send(mySocket, (char*)&messageSize, sizeof(messageSize), 0)) == SOCKET_ERROR)
{
cout << "Client: Sambungan Gagal!!\n";
}
messageSize = ntohl(messageSize);
if ((nBytes = send(mySocket, buffer, messageSize, 0)) == SOCKET_ERROR)
{
cout << "Client: Pesan tidak terkirim!!\n";
}
cout << "\n>";
}
EndClient(mySocket);
return 0;
}
int StartClient(unsigned short port, const char* serverName)
{
int error;
WSAData wsaData; // menyimpan informasi dari jaringan
if ((error = WSAStartup(MAKEWORD(2, 2), &wsaData)) == SOCKET_ERROR) //membuat panggilan untuk memulai winsock
{
return -1;
}
int mySocket = socket(AF_INET, SOCK_STREAM, 0); //AF_INET untuk menyiapkan sambungan ke internet, Sock_sream Socket memulai sambungan.
if (mySocket == SOCKET_ERROR) // Untuk memeriksa kalau terjadi kesalahan
{
cout << "Client: Error!\n";
return -1;
}
struct hostent *host_entry;
if ((host_entry = gethostbyname(serverName)) == NULL) //memeriksa jika server tidak ada
{
cout << "Client: Sambungan Ke server Tidak tersedia, Server Off\n";
}
struct sockaddr_in server;
server.sin_family = AF_INET; //AF_INET ; Menyiapkan Sambunagn ke internet
server.sin_port = htons(port);
server.sin_addr.s_addr = *(unsigned long*) host_entry->h_addr;
if (connect(mySocket, (sockaddr*)&server, sizeof(server)) == SOCKET_ERROR)
{
cout << "Client: error****.\n";
}
cout << "Client: Siap,,!\n";
return mySocket;
}
void EndClient(int clientSocket)
{
closesocket(clientSocket);
WSACleanup();
}
int StartClient(unsigned short port, const char* serverName);
void EndClient(int clientSocket);
#include <winsock2.h>
#include <iostream>
using namespace std;
int main()
{
cout << "\n\n"
<< "Client: Memulai sambungan ke server\n";
HANDLE hConsole;
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, 2);
// -----------------------------------------------------
int mySocket;
mySocket = StartClient(70, "localhost");
if (mySocket == -1)
{
EndClient(mySocket);
return 1;
}
int pilihan;
int msg;
char Nama[10];
char ID[10];
string ip;
{cout<<"Nama = ";
cin>>Nama;
cout<<"Pasword = ";
cin>>ID;
cout<<Nama;
cout<<ID<<endl;
}
cout<<"1)Mulai Chat\n";
cout<<"2)CANCEL\n";
cin>>pilihan;
if ( pilihan == 2 )
exit (0);
else if (pilihan == 1 )
int nBytes;
#define MAX_MESSAGE_SIZE 4096
char buffer[MAX_MESSAGE_SIZE];
char inMessage[MAX_MESSAGE_SIZE];
cout << "Client: Jika ingin Keluar, Ketik 'exit'\n";
cout<<"Client: Silahkan tulis Pesan !\nClient: > ";
for (;;)
{
gets(buffer);
if (strcmp(buffer, "exit") == 0)
{
break;
}
unsigned long messageSize = strlen(buffer);
messageSize = htonl(messageSize);
if ((nBytes = send(mySocket, (char*)&messageSize, sizeof(messageSize), 0)) == SOCKET_ERROR)
{
cout << "Client: Sambungan Gagal!!\n";
}
messageSize = ntohl(messageSize);
if ((nBytes = send(mySocket, buffer, messageSize, 0)) == SOCKET_ERROR)
{
cout << "Client: Pesan tidak terkirim!!\n";
}
cout << "\n>";
}
EndClient(mySocket);
return 0;
}
int StartClient(unsigned short port, const char* serverName)
{
int error;
WSAData wsaData; // menyimpan informasi dari jaringan
if ((error = WSAStartup(MAKEWORD(2, 2), &wsaData)) == SOCKET_ERROR) //membuat panggilan untuk memulai winsock
{
return -1;
}
int mySocket = socket(AF_INET, SOCK_STREAM, 0); //AF_INET untuk menyiapkan sambungan ke internet, Sock_sream Socket memulai sambungan.
if (mySocket == SOCKET_ERROR) // Untuk memeriksa kalau terjadi kesalahan
{
cout << "Client: Error!\n";
return -1;
}
struct hostent *host_entry;
if ((host_entry = gethostbyname(serverName)) == NULL) //memeriksa jika server tidak ada
{
cout << "Client: Sambungan Ke server Tidak tersedia, Server Off\n";
}
struct sockaddr_in server;
server.sin_family = AF_INET; //AF_INET ; Menyiapkan Sambunagn ke internet
server.sin_port = htons(port);
server.sin_addr.s_addr = *(unsigned long*) host_entry->h_addr;
if (connect(mySocket, (sockaddr*)&server, sizeof(server)) == SOCKET_ERROR)
{
cout << "Client: error****.\n";
}
cout << "Client: Siap,,!\n";
return mySocket;
}
void EndClient(int clientSocket)
{
closesocket(clientSocket);
WSACleanup();
}
Codding ini baru bisa digunakan untuk mengirim pesan ke server saja dan belum bisa digunakan untuk menerima data yang dikirim dari Server.
No comments :
Post a Comment