Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1 Pertemuan 10 Pemrograman Jaringan pada Windows dengan VC++ 6.0 ) Matakuliah: H0483 – Network Programming Tahun: 2008 Versi: 2.0.

Presentasi serupa


Presentasi berjudul: "1 Pertemuan 10 Pemrograman Jaringan pada Windows dengan VC++ 6.0 ) Matakuliah: H0483 – Network Programming Tahun: 2008 Versi: 2.0."— Transcript presentasi:

1 1 Pertemuan 10 Pemrograman Jaringan pada Windows dengan VC++ 6.0 ) Matakuliah: H0483 – Network Programming Tahun: 2008 Versi: 2.0

2 2 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mendemonstrasikan program aplikasi jaringan komputer pada sistem operasi windows dengan menggunakan Windows Socket.

3 3 Outline Materi Kasus : Membuat Program Chatting Tahapan tahapan membuat program di VC++ 6.0 Memasukkan komponen Winsock 6.0 ke dalam program Membuat Form Coding Test Program

4 4 Membuat Program Chatting Program server dengan I/O Multiplexing pada pertemuan 7 sebelumnya dapat digunakan untuk server (pada Linux) untuk membuat sistem Chatting Sedangkan Clientnya dibuat dengan Visual Programming (VC++ 6.0) agar tampilannya lebih menarik.

5 5 Jalankan VC++ 6.0 Pilih menu File  New Pilih MFC AppWizard(exe), kemudian isi location dan Project name. Tahapan Membuat Program

6 6 Pilih Dialog Based, kemudian klik Next

7 7 Tahapan Membuat Program Untuk memasukkan komponen WinSock ke program pilih : Windows Sockets Kemudian Klik Finish

8 8 Kemudian buat Form sbb: Tahapan Membuat Program List Box Edit Box Button

9 9 Data Member Tambahkan data member sbb: CButton m_ctrlCancel; CButton m_ctrlSend; CButton m_ctrlDisConnect; CButton m_ctrlOK; CListBox m_ctrlListBox; CString m_csIPaddress; CString m_csPort; CString m_csNama; CString m_csMessage; SOCKET m_sClient; struct sockaddr_in m_server, m_client; BOOL m_bKill; BOOL m_bConnect;

10 10 Jika tombol Connect di Klik maka akan menjalankan program sbb: void CClientChattingDlg::OnOKConnect() { WSADATA wsd;CWaitCursor wait; CString str; UpdateData(TRUE); if(WSAStartup(MAKEWORD(2,2), &wsd) != 0){ AfxMessageBox("Failed to load Winsock library!\n"); return; } m_sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (m_sClient == INVALID_SOCKET){ str.Format("socket() failed: %d", WSAGetLastError()); AfxMessageBox(str); return; } m_server.sin_family = AF_INET; m_server.sin_port = htons(atoi(m_csPort)); m_server.sin_addr.s_addr = inet_addr(m_csIPaddress); if(connect(m_sClient, (struct sockaddr *)&m_server,sizeof(m_server)) == SOCKET_ERROR){ str.Format("connect() failed: %d", WSAGetLastError()); AfxMessageBox(str); return; } m_ctrlSend.EnableWindow(TRUE); m_ctrlDisConnect.EnableWindow(TRUE); m_ctrlCancel.EnableWindow(FALSE); AfxBeginThread(&thread,0); } Member Function

11 11 Jika tombol Send di klik akan menjalankan instruksi sbb: void CClientChattingDlg::OnSend() { CString str; UpdateData(TRUE); str=m_csNama+": "+m_csMessage; if(send(m_sClient,str, str.GetLength(),0) == SOCKET_ERROR){ AfxMessageBox("Error sending message"); return; } Member Function

12 12 Member Function Jika tombol Cancel di klik akan menjalankan instruksi sbb: void CClientChattingDlg::OnCancel() { m_bKill=TRUE; while(m_bKill && m_bConnect) DoEvents(); CDialog::OnCancel(); }

13 13 Member Function void CClientChattingDlg::OnDisconnectbtn() { CString str; m_bKill = TRUE; str=m_csNama+": DisConnect"; if(send(m_sClient,str,str.GetLength(),0)==SOCKET_ERROR){ AfxMessageBox("Error sending message"); return; } m_ctrlOK.EnableWindow(TRUE); m_ctrlDisConnect.EnableWindow(FALSE); m_ctrlCancel.EnableWindow(TRUE); }

14 14 Member Function UINT thread(LPVOID p) { int s; char ss[200]; CClientChattingDlg *dlg=(CClientChattingDlg*)AfxGetApp()->GetMainWnd(); dlg->m_bConnect = TRUE; while(!(dlg->m_bKill)){ s=recv(dlg->m_sClient,ss,200,0); ss[s]='\0'; dlg->m_ctrlListBox.InsertString(0,ss); } closesocket(dlg->m_sClient); WSACleanup(); dlg->m_bKill=FALSE; dlg->m_bConnect = FALSE; AfxEndThread(0); return 0; }

15 15 Member Function void CClientChattingDlg::DoEvents() { MSG msg; // Process existing messages in the application's message queue. // When the queue is empty, do clean up and return. while (::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)) { if (!AfxGetThread()->PumpMessage())return; }

16 16 Testing Hubungkan dua komputer dalam LAN Set IP Address masing-masing komputer Jalankan program server pada komputer dengan O/S Linux Jalankan program client pada komputer dengan O/S Windows Coba Connect dengan Server

17 17 Latihan Buat program DayTimeServer dan DayTimeClient pada Windows (Bahasa pemrograman VC++ atau yang lainnya) Buat Program EchoServer dan program Clientnya pada Windows dengan bahasa pemrograman VC++ atau yang lain


Download ppt "1 Pertemuan 10 Pemrograman Jaringan pada Windows dengan VC++ 6.0 ) Matakuliah: H0483 – Network Programming Tahun: 2008 Versi: 2.0."

Presentasi serupa


Iklan oleh Google