1.       1. Coding pada program ü  Pada Server 1 //program client #include <cstdlib> #include <iostream> #include <winsock.h> #include <windows.h> #include  <string> #define CON_PORT 2015 #define REC_PORT 2014 using namespace std; bool bConnectTo (char* pszAa...

Shop now !

Surat Kuasa Dengan hormat, Yang bertanda tangan di bawah ini: Nama               : Nanang Iswanto Nim                 : 12201055 Alamat             : JL.Lintas Ke...

Shop now !

Pengenalan C++ Bahasa pemrograman C++ bisa disebut sebagai bahasa pemrograman tingkat menengah ( middle level programming language) yang berarti juga termasuk dalam bahasa tingkat tinggi (high level programming language). Struktur C++ # include main() { Instruksi-instruksi } Keterangan : a. # include sebagai proses compiler dari c++ menjalankan ...

Shop now !

Oke, untuk posting saya yang pertama kalinya di blog ini, saya akan berbagi cara membuat stick man (manusia lidi) pake Macromedia Flash 8, mungkin agan ada yang gak tau stick man, nih saya kasih gambar :)     Mungkin ada beberapa yang bertanya, kenapa kita pakai animasi stick man untuk percobaan membuat animasi? Jawabannya ya ka...

Shop now !

Mungkin ada banyak pembaca yang punya sifat seperti saya, suka mencicipi hal baru, dalam hal ini adalah software, mulai dari pengolah photo/vector/grafis, audio video, programing, sampai aplikasi Office. Saya suka sekali menggunakan software-software terkenal dunia kalangan professional yang digunakan banyak orang tingkat atas meskipun softwarenya...

Shop now !

Ini ni postingan pertama setelah beberapa dekade absen.. hahahahBagi para blogger yang baru gabung pasti penting ni.. sapa tau bisa dapat uang tambahan buat beli permen + supaya tampilan blog kita tambah rame pastinya. :D Langsung aja bray........ Dalam pembuatan blog, blogger telah menyedikan beberapa widget secara default, tapi tidak semua...

Shop now !

Setelah sekian lama mangkir dari dunia blogg (.. bahsanya gentak memang :D) hari ini saya akan mencoba aktif lagi dengan memposting hal-hal yang berguna untuk anda. PEMBAHARUAN baru saja saya lakukan. walaupun belum 100% sih.. hahahah ...

Shop now !

DarkWave Studio adalah open source (GPLv3) workstation digital audio / studio maya modular untuk Windows. Anda dapat dengan mudah menggunakan dibangun pada sequencer, paket mesin DarkPlug dan efek VST pihak ketiga dan instrumen VSTi untuk menciptakan musik. DarkWave Studio memungkinkan sambungan mesin dalam mode ad-hoc. Installer kapal den...

Shop now !
TUGAS UAS KOMUNIKASI DATA MEMBUAT APLIKASI CHATING MENGGUNAKAN C++

TUGAS UAS KOMUNIKASI DATA MEMBUAT APLIKASI CHATING MENGGUNAKAN C++

1.       1. Coding pada program
ü  Pada Server 1
//program client
#include <cstdlib>
#include <iostream>
#include <winsock.h>
#include <windows.h>
#include  <string>
#define CON_PORT 2015
#define REC_PORT 2014
using namespace std;


bool bConnectTo (char* pszAaddress, int nNoPort);
bool bListenOnPort (int nNonPort);
void CloseConnection(SOCKET sock);
DWORD WINAPI Connect (LPVOID Param);
DWORD WINAPI Receive (LPVOID PARAM);


SOCKET sConn;
SOCKET sRecv;
WSADATA wsa1; bConnectTo()
WSADATA wsa2; bListenOnPort()
int main(int argc, char *argv[])
{
    bool bStatus;
    DWORD id;
    bStatus = bListenOnPort (REC_PORT);
    if (bStatus == false )
    {
       cout << endl << "Listening pada port " << REC_PORT << " gagal!!" << endl;
    }
    else
    {
        cout << endl << "Listening pada port " << REC_PORT << "Berhasil!!" << endl;
    }
    CreateThread (NULL,0, &Connect,NULL,0, &id);
    CreateThread (NULL,0 ,&Receive, NULL,0,&id);
   
    while (true)
    {
         
          char szInput [1024] = { '\0'};
          SOCKET sSend; // Handle return fungsi send ()
          cout << "send 1> ";
        
          cin.getline (szInput, 1024);
          sSend = send (sConn,szInput,1024,0);  dari szInput
          if (sSend == INVALID_SOCKET)
          {
          cout << "(Gagal Mengirim)" << endl;
          }
          else
          {
         
          cout << "Sedding OK)" << endl;
          }
    }
    system ("PAUSE");
    return EXIT_SUCCESS;
}
    DWORD WINAPI Receive (LPVOID Param)
{
    SOCKET sAcc;
    sAcc = accept (sRecv,NULL,NULL);
    if (sAcc == INVALID_SOCKET)
    {
       cout << endl << "Koneksi gagal diterima!!" << endl;
    }
    else
    {
        cout << endl << "Koneksi berhasil diterima" << endl << "send>";
    }
    while (true)
    {
         
        Sleep(100);
        char szMessage[1024] = { '\0' };
        SOCKET sRcv;
           
        sRcv = recv(sAcc, szMessage, 1024, 0);
           
        if(sRcv == INVALID_SOCKET)
        {
            cout << endl <<"Gagal Menerima Data!!" << endl;
            break;
          }
          else
          {
             
              cout << endl << "pesan atau data dari pengirim : " << szMessage << endl << "send>";
          }
    }
}
DWORD WINAPI Connect (LPVOID Param)
{
      bool bKondisi;
      while (true)
      {
            Sleep (1000);
            bKondisi = bConnectTo("192.168.14.7",CON_PORT);
            if (bKondisi == true)
            {
               cout << endl << "Koneksi Berhasil" << endl << "send>";
               break;
            }
      }
      return 0;
}
bool bConnectTo (char* pszAddress, int nNoPort)
{
     int error = WSAStartup (0x0202, &wsa1);
     if (error)
     {
              
               return false;
     }
     if (wsa1.wVersion !=0x0202)
     {
              
               WSACleanup ();
               return false;
     }
     SOCKADDR_IN addr;
     addr.sin_family = AF_INET;
     addr.sin_port = htons (nNoPort);
     addr.sin_addr.s_addr = inet_addr (pszAddress);
     sConn = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
     if (sConn == INVALID_SOCKET)
     {
             
              return false;
     }
     if (connect (sConn, (SOCKADDR *) & addr, sizeof(addr)) == SOCKET_ERROR)
     {
            
             return false;
     }
     else
     {
        
            return true;
     }
}
bool bListenOnPort (int nNoPort)
{
     int error = WSAStartup (0x0202, &wsa2);
     if (error)
     {
       
        return false;
     }
     if(wsa2.wVersion !=0x0202)
     {
       
        WSACleanup();
        return false;
     }
     SOCKADDR_IN addr;
   
    addr.sin_family = AF_INET;
    addr.sin_port = htons(nNoPort);
    addr.sin_addr.s_addr = htonl(INADDR_ANY);
   
    sRecv = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
   
    if(sRecv == INVALID_SOCKET)
     {
       
        return false;
     }
     if(bind(sRecv, (LPSOCKADDR) &addr, sizeof(addr)) == SOCKET_ERROR)
     {
    
      return false;
      }
     listen (sRecv,SOMAXCONN);
}
void CloseConnection(SOCKET sock)
{
     if (sock)
     {
             
              closesocket(sock);
     }
             
     WSACleanup();
}






ü  Pada Server 2
//program client
#include <cstdlib>
#include <iostream>
#include <winsock.h>
#include <windows.h>
#include  <string>
#define CON_PORT 2014
#define REC_PORT 2015
using namespace std;


bool bConnectTo (char* pszAaddress, int nNoPort);
bool bListenOnPort (int nNonPort);
void CloseConnection(SOCKET sock);
DWORD WINAPI Connect (LPVOID Param);
DWORD WINAPI Receive (LPVOID PARAM);


SOCKET sConn;
SOCKET sRecv;
WSADATA wsa1; bConnectTo()
WSADATA wsa2; bListenOnPort()
int main(int argc, char *argv[])
{
    bool bStatus;
    DWORD id;
    bStatus = bListenOnPort (REC_PORT);
    if (bStatus == false )
    {
       cout << endl << "Listening pada port " << REC_PORT << " gagal!!" << endl;
    }
    else
    {
        cout << endl << "Listening pada port " << REC_PORT << "Berhasil!!" << endl;
    }
    CreateThread (NULL,0, &Connect,NULL,0, &id);
    CreateThread (NULL,0 ,&Receive, NULL,0,&id);
   
    while (true)
    {
         
          char szInput [1024] = { '\0'};
          SOCKET sSend;
          cout << "send 2> ";
         
          cin.getline (szInput, 1024);
          sSend = send (sConn,szInput,1024,0);
          if (sSend == INVALID_SOCKET)
          {
          cout << "(Gagal Mengirim)" << endl;
          }
          else
          {
        
          cout << "Sedding OK)" << endl;
          }
    }
    system ("PAUSE");
    return EXIT_SUCCESS;
}
    DWORD WINAPI Receive (LPVOID Param)
{
    SOCKET sAcc;
    sAcc = accept (sRecv,NULL,NULL);
    if (sAcc == INVALID_SOCKET)
    {
       cout << endl << "Koneksi gagal diterima!!" << endl;
    }
    else
    {
        cout << endl << "Koneksi berhasil diterima" << endl << "send>";
    }
    while (true)
    {
         
        Sleep(100);
        char szMessage[1024] = { '\0' };
        SOCKET sRcv;
           
        sRcv = recv(sAcc, szMessage, 1024, 0);
           
        if(sRcv == INVALID_SOCKET)
        {
            cout << endl <<"Gagal Menerima Data!!" << endl;
            break;
          }
          else
          {
             
              cout << endl << "pesan atau data pengirim : " << szMessage << endl << "send>";
          }
    }
}
DWORD WINAPI Connect (LPVOID Param)
{
      bool bKondisi;
      while (true)
      {
            Sleep (1000);
            bKondisi = bConnectTo("192.168.14.2",CON_PORT);
            if (bKondisi == true)
            {
               cout << endl << "Koneksi Berhasil" << endl << "send>";
               break;
            }
      }
      return 0;
}
bool bConnectTo (char* pszAddress, int nNoPort)
{
     int error = WSAStartup (0x0202, &wsa1); Winsock
     if (error)
     {
              
               return false;
     }
     if (wsa1.wVersion !=0x0202)
     {
             
               WSACleanup ();
               return false;
     }
     SOCKADDR_IN addr;
     addr.sin_family = AF_INET;
     addr.sin_port = htons (nNoPort);
     addr.sin_addr.s_addr = inet_addr (pszAddress);
    
     sConn = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);  socket
     if (sConn == INVALID_SOCKET)
     {
             
              return false;
     }
     if (connect (sConn, (SOCKADDR *) & addr, sizeof(addr)) == SOCKET_ERROR)
     {
            
             return false;
     }
     else
     {
        
            return true;
     }
}
bool bListenOnPort (int nNoPort)
{
     int error = WSAStartup (0x0202, &wsa2); Winsock
     if (error)
     {
    
        return false;
     }
     if(wsa2.wVersion !=0x0202)
     {

        WSACleanup();
        return false;
     }
     SOCKADDR_IN addr;
   
    addr.sin_family = AF_INET;
    addr.sin_port = htons(nNoPort);
    addr.sin_addr.s_addr = htonl(INADDR_ANY);
   
    sRecv = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); Socket
   
    if(sRecv == INVALID_SOCKET)
     {
     
        return false;
     }
     if(bind(sRecv, (LPSOCKADDR) &addr, sizeof(addr)) == SOCKET_ERROR)
     {
      return false;
      }
     listen (sRecv,SOMAXCONN);
}
void CloseConnection(SOCKET sock)
{
     if (sock)
     {
             
              closesocket(sock);
     }
             
     WSACleanup();
}








2.      2..Contoh tampilan program saat di eksekusi. Disini digunakan 2 komputer yang saling terkoneksi.
ü  Saat program mulai di eksekusi (RUN), pertama program akan membuat sambungan dari server 1 ke server 2 dan sebaliknya.
 
  




ü  Setelah berhasil akan muncul pesan bahwa komeksi berhasil diterima

 



ü  Kemudia kami berikan contoh screenshoot dari chat yang dilakukan oleh 2 komputer yang sudah kami jalankan aplikasi chating tersebut






3.      3. Konfigurasi IP pada 2 komputer agar dapat terhubung. Dan disini kami menggunakan cabel LAN jenis cross untuk menghubungkan/mengkoneksikan 2 komputer tersebut.
Caranya :
·         Pada Network Connection di PC anda pilih Open Network And Sharing Center. Bisa juga di akses melalui Control Panel

·         Diaccess type connection pilih Local Area Network.
·         Lalu pilih properties. Disini akan kita setting IP addressnya.



  

·         Setelah itu pilih TCP/IPv4



·         Silahkan untuk mensetting IP seperti dibawah ini untuk server, lalu ok,ok,ok



·         Dan seperti dibawah ini untuk client, lalu ok,ok,ok.



4.      4. Penjelasan potongan codingnya akan kami elaskan dibawah.
ü  Potongan coding pada server 1
#define CON_PORT 2015 //Port yang akan dihubungi
#define REC_PORT 2014 // Port untuk listening

//variabel global
SOCKET sConn; // Socket yang digunakan pada fungsi bConnectTo()
SOCKET sRecv; // Socket yang digunakan pada fungsi bListenOnPort()
WSADATA wsa1; // Object WSADATA yang digunakan pada fungsi bConnectTo()
WSADATA wsa2; // Object WSADATA yang digunakan pada fungsi bListenOnPort()
int main(int argc, char *argv[])

// Infinite looping untuk menampilkan data terus-menerus
        Sleep(100); // tunda eksekusi selama 100 milisecond
        char szMessage[1024] = { '\0' }; // Inisiasi variable NULL
        SOCKET sRcv; // Handle return fungsi recv()

bool bConnectTo (char* pszAddress, int nNoPort)
{
     int error = WSAStartup (0x0202, &wsa1); // Mengaktifkan Winsock
     if (error)
     {
               // jika terjadi error (nilai return !=0)
               return false;
     }
     if (wsa1.wVersion !=0x0202)
     {
               // Jika versi socket tidak sesuai
               WSACleanup ();
               return false;
     }





ü  Potongan coding pada server 2
#define CON_PORT 2014 //Port yang akan dihubungi
#define REC_PORT 2015 // Port untuk listening

SOCKET sConn; // Socket yang digunakan pada fungsi bConnectTo()
SOCKET sRecv; // Socket yang digunakan pada fungsi bListenOnPort()
WSADATA wsa1; // Object WSADATA yang digunakan pada fungsi

// Infinite looping untuk menampilkan data terus-menerus
        Sleep(100); // tunda eksekusi selama 100 milisecond
        char szMessage[1024] = { '\0' }; // Inisiasi variable NULL
        SOCKET sRcv; // Handle return fungsi recv()
           
        sRcv = recv(sAcc, szMessage, 1024, 0); // menerima
           
        if(sRcv == INVALID_SOCKET)
        {
            cout << endl <<"Gagal Menerima Data!!" << endl;
            break; // Akhiri looping
          }
          else
          {
              //tampilkan data dari client
              cout << endl << "pesan atau data pengirim : " << szMessage << endl << "send>";
          }
    }
}

SOCKADDR_IN addr; // Struktur socket
     addr.sin_family = AF_INET;
     addr.sin_port = htons (nNoPort);
     addr.sin_addr.s_addr = inet_addr (pszAddress);
     // membuat Socket
     sConn = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); //membuat socket
     if (sConn == INVALID_SOCKET)
     {
              // Jika Socket Gagagl di buat
              return false;
     }
     if (connect (sConn, (SOCKADDR *) & addr, sizeof(addr)) == SOCKET_ERROR)
     {
             // Jika tidak dapat melakukan koneksi
             return false;
     }
     else
     {
         // jika dapat melakukan koneksi
            return true;
     }
}






Pages (7)1234567 Next
 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. i-beitrag - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger