Download
singidunum chat chat aplikacija n.
Skip this Video
Loading SlideShow in 5 Seconds..
Singidunum Chat CHAT APLIKACIJA PowerPoint Presentation
Download Presentation
Singidunum Chat CHAT APLIKACIJA

Singidunum Chat CHAT APLIKACIJA

118 Vues Download Presentation
Télécharger la présentation

Singidunum Chat CHAT APLIKACIJA

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Singidunum ChatCHAT APLIKACIJA STUDENTI: Maslovarić Ksenija 50/2005 Kovačević Ivan 65/2005 Dešić Marko 157/2005 Alempijević Nevenka 196/2005 Ranković Žaklina 198/2005

  2. SADRŽAJ: • O APLIKACIJI • SEGMENTI KODA • IZGLED APLIKACIJE I NAČIN RADA • IMPLEMENTACIJA FTP • OBJASNJENJE IMPLEMENTACIJE

  3. O APLIKACIJI • APLIKACIJA HYPER CHAT NAPRAVLJENA JE U MICROSOFT FOUNDATION CLASS-U, TAKO DA KORISTI GOTOVE FUNKCIJE • OSNOVNA APLIKACIJA SASTOJI SE OD FAJLOVA: • MY SOCKET.CPP KOJI OTVARA I ZATVARA SOCKET-E • HYPERCHAT.CPP KOJI INICIJALIZUJE APLIKACIJU • HYPERCHATDLG.CPP KOJI SADRŽI DEFINICIJU TOKA PROGRAMA

  4. HEDERI HyperChat.h HyperChatDlg.h MySocket.h Resource.h StdAfx.h

  5. NEKE OD FUNKCIJA INITINSTANCE *InitInstnace je funkcijatipa BOOL. akoprilikominicijalizacijevrativrednostrazlicituod 0 znacida je inicijalizacijauspesna, a u suprotnomvracavrednost 0. Obziromda Windows operativnisistemdozvoljavaradsa vise instancijedneaplikacijaWinMainpozivafunkcijuInitInstancekada god aplikacijapokrenenovuinstancu Inicijalizacijaaplikacijevrsi se dvaputa: jednomkada se pokrece program ikada se izvrsavakopijaprograma. ONSYSCOMMAND *Framework pozivaovufunkcijukadakorisnikodaberekomandusamenija, ilikadaodabere minimize ili maximize opciju DODATAEXCHANGE *DoDataExchange je funkcijakoju framework pozivakako bi se razmenilipodaciirazmenabilapotvrdjena DoDataExchange je jefunkcijatipavoidciji je parametar pointer naobjekatCDataExchange U nasemprogramu je DoDataExchangeizvedenaizklaseCDialogcime se omogucavaautomatskarazmenapodatakaipotvrda u framework-u.

  6. DELOVI KODA MySocket.cpp void CMySocket::SetParent(CDialog *pWnd) { // Setter medlemspekeren m_pWnd = pWnd; } void CMySocket::OnAccept(int nErrorCode) { // Hvis ingen feil: if (nErrorCode == 0) // kaller dialogens OnAccept funksjon ((CHyperChatDlg*)m_pWnd)->OnAccept(); } void CMySocket::OnConnect(int nErrorCode) { if (nErrorCode == 0) ((CHyperChatDlg*)m_pWnd)->OnConnect1(); } void CMySocket::OnSend(int nErrorCode) { if (nErrorCode == 0) ((CHyperChatDlg*)m_pWnd)->OnSend(); } void CMySocket::OnClose(int nErrorCode) { if(nErrorCode == 0) ((CHyperChatDlg*)m_pWnd)->OnClose(); } void CMySocket::OnReceive(int nErrorCode) { if(nErrorCode == 0) ((CHyperChatDlg*)m_pWnd)->OnReceive(); } HyperChatDlg.cpp void CHyperChatDlg::OnConnect() { UpdateData(TRUE); GetDlgItem(IDC_CONNECT)->EnableWindow(FALSE); GetDlgItem(IDC_IP)->EnableWindow(FALSE); GetDlgItem(IDC_PORT)->EnableWindow(FALSE); GetDlgItem(IDC_NICK)->EnableWindow(FALSE); GetDlgItem(IDC_CLIENT)->EnableWindow(FALSE); GetDlgItem(IDC_SERVER)->EnableWindow(FALSE); GetDlgItem(IDC_STATICTYPE)->EnableWindow(FALSE); GetDlgItem(IDC_STATICIP)->EnableWindow(FALSE); GetDlgItem(IDC_STATICPORT)->EnableWindow(FALSE); GetDlgItem(IDC_STATICNICK)->EnableWindow(FALSE); if (m_Client == 0) { // initsialiserer socketen m_sConnectSocket.Create(); // Connecter til serveren m_sConnectSocket.Connect(m_IP, m_Port); m_Status = "Connecting..."; UpdateData(FALSE); } else { m_sListenSocket.Create(m_Port); m_sListenSocket.Listen(); m_Status = "Waiting for connection..."; UpdateData(FALSE); } }

  7. AFX I MFC • AFXWIN.H JE HEDERKOJI PRIPADA OSNOVNOJ KLASI CWINAPP, I SADRŽI STANDARDNE KOMPONENTE KOJE KORISTI MFC • UVOĐENJE AFX HEDERA OMOGUĆAVA FUNKCIJAMA KOJE SU ČALNICE OSNOVNE KLASE DA INICIJALIZUJU APLIKACIJU • OBJEKTI IZVEDENI IZ CWINAPP SU GLOBALNE PROMENLJIVE • HEADER FAJLOVI KOJI PODRŽAVAJU WINDOWS SE UKLJUČUJU U PROJEKTE RAĐENE U MFC UVOĐENJEM PREDPROCESORSKIH DIREKTIVA U HEADER FAJLU STDAFX.H

  8. AFX I MFC • POKRETANJEM AFXWIN.H AUTOMATSKI SE POKREĆE I AFXRES (FAJLOVI SA EKSTENZIJOM .RC) KOJI PREDSTAVLJAJU RESOURCE HEDERE • MFC JE BIBLIOTEKA KOJA SADRŽI VIŠE OD 200 KLASA • KROZ MFC DEKLARIŠU SE I MAKROI, KOJI SE UOBIČAJENO NALAZE NA KRAJU DEFINICIJE KLASE IZMEĐU // ...// • MAKROI PREDSTAVLJA NEKU VRSTU VIRTUALNIH FUNKCIJA U C++ • KLASA CFTPFILEFIND SLUŽI ZA PRETRAGU FAJLOVA NA FTP SERVERIMA

  9. IZGLED APLIKACIJE Ovde birate da li želite da budete KLIJENT ili SERVER Unos IP adrese Komunikacioni port Vaš nadimak na chat-u Konektovanje/ Kreiranje servera Polje za poruke Slanje i primanje fajla preko FTP-a

  10. Izgled aktivirane aplikacije

  11. SOCKET • SOCKET PREDSTAVLJA OBJEKAT SOCKET KLASE KOJI OMOGUĆAVA USPOSTAVLJANJE KOMUNIKACIJE IZMEĐU DVA RAZLIČITA PORTA NA MREŽI • DA BI SE KONEKCIJA IZMEĐU DVA PORTA USPOSTAVILA POTREBNO JE KREIRATI SOCKET I VEZATI DVE TACKE PREKO BIND METODA • VEZA IZMEĐU DVA PORTA NA MREŽI USPOSTAVLJA SE PREKO CONNECT METODA

  12. IMPLEMENTACIJA FTP

  13. FTP-File Transfer Protocole • FTP SLUŽI ZA PRENOS FAJLOVA IZMEĐU DVE TAČKE NA MREŽI • TCP ZAHTEVA DVA SETA PODATAKA-IP ADRESU I BROJ PORTA- PRILIKOM IZVRŠEN PROGRAMA POTREBNO JE, OSIM TAČNE PUTANJE ZA PRENOS, UNETI I IP ADRESU I PORT • UNOŠENJEM IP ADRESE, LOCIRA SE RAČUNAR NA MREŽI, DOK SE UNOŠENJEM ISPRAVNOG PORTA OMOGUĆAVA KONEKCIJA, ODNOSNO KONTEKTOVANJE SE PRAVOM APLIKACIJOM

  14. PrimanjeislanjefajlovaFile Transfer Protocol [FTP]

  15. Literatura NUMERICAL SIMULATIONS AND CASE STUDIES/WILEY INTERSCIENCE MICROSOFT VISUAL C++.NET PROFESSIONAL PROJECTS/SRIPRIYA AND SAI KISHORE TCP/IP Application Layer protocols for embedded Systems/M.Tim.Jones www.codeproject.com

  16. Hvala Vam na pažnji!