C++ server / client application

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

C++ server / client application

Δημοσίευση από Basilakis » 11 Μαρ 2008 16:36

Katarxas na pw pws einai ergasia gia tin sxoli, kai den einai tpt plirwteo ktl.

Afto p exw kanei mexri twra, itane na ftiaxoume tin efarmogi se command line, me tin voitheia tutorials ktl. Twra mas to zitane se UI olo afto, kai malista eksidikevmeno.

Afto p exw na kanw, einai na kane ena connection, metaksi server / client, kai o client na diavazei kapoia arxeia .txt p einai apothikevmena ston server.

Exw kanei to ui, opws fetenete edw"

Εικόνα

To combobox, epilegei epo ena if statment, kai diavazei to onoma tou arxeiou p exw orisei egw. Afto p thelw na kanw, einai patwntas to coumpi "load client" na ksekinaw to connection. Alla edw einai to provlima kai to zori :P

O kwdikas tou client mou (o server leitourgei swsta afou den xreiastike na alaksei apo console se UI).

Κώδικας: Επιλογή όλων

		 void DatagramClient(char *szServer, short nPort)

{



        //cout<<"\nDatagram Client sending to server&#58; "<<szServer<<" on port&#58; "<<
nPort;



        //

        // Find the server

        //

    LPHOSTENT lpHostEntry;



        lpHostEntry = gethostbyname&#40;szServer&#41;;

    if &#40;lpHostEntry == NULL&#41;

    &#123;

       // PRINTERROR&#40;"gethostbyname&#40;&#41;"&#41;;

//        return;

    &#125;





        //

        // Create a UDP/IP datagram socket

        //

        SOCKET        theSocket;



        theSocket = socket&#40;AF_INET,                        // Address family

                                           SOCK_DGRAM,                // Socket type

                                           IPPROTO_UDP&#41;;        // Protocol

        if &#40;theSocket == INVALID_SOCKET&#41;

        &#123;

                //PRINTERROR&#40;"socket&#40;&#41;"&#41;;

        //        return;

        &#125;



        //

        // Fill in the address structure for the server

        //

        SOCKADDR_IN saServer;



        saServer.sin_family = AF_INET;

        saServer.sin_addr = *&#40;&#40;LPIN_ADDR&#41;*lpHostEntry->h_addr_list&#41;;

                                                                                // ^ Server's address

        saServer.sin_port = htons&#40;nPort&#41;;        // Port number from command line



        //

        // Send data to the server

        //

        char szBuf&#91;256&#93;;

        int nRet;

        do&#123;

  // strcpy&#40;szBuf, "From the Client"&#41;;

//  cin>>szBuf;

        nRet = sendto&#40;theSocket,                                // Socket

                                  szBuf,                                        // Data buffer

                                  strlen&#40;szBuf&#41;,                        // Length of data

                                  0,                                                // Flags

                                  &#40;LPSOCKADDR&#41;&saServer,        // Server address

                                  sizeof&#40;struct sockaddr&#41;&#41;; // Length of address

        if &#40;nRet == SOCKET_ERROR&#41;

        &#123;

               // PRINTERROR&#40;"sendto&#40;&#41;"&#41;;

                closesocket&#40;theSocket&#41;;

                return;

        &#125;



        //

        // Wait for the reply

        //

        memset&#40;szBuf, 0, sizeof&#40;szBuf&#41;&#41;;

        int nFromLen;



        nFromLen = sizeof&#40;struct sockaddr&#41;;

        recvfrom&#40;theSocket,                                                // Socket

                        szBuf,                                                        // Receive buffer

                         sizeof&#40;szBuf&#41;,                                        // Length of receive buffer

                         0,                                                                // Flags

                        &#40;LPSOCKADDR&#41;&saServer,                        // Buffer to receive sender's address

                       &nFromLen&#41;;                                        // Length of address buffer

       if &#40;nRet == SOCKET_ERROR&#41;

        &#123;

                //PRINTERROR&#40;"recvfrom&#40;&#41;"&#41;;

                closesocket&#40;theSocket&#41;;

        &#125;



        //

        // Display the data that was received

        //

        //cout<<"\nData received&#58; "<< szBuf;



&#125;while&#40;strcmp&#40;szBuf,"echo&#58; bye"&#41;!=0&#41;;

&#125;
&#125;;
&#125;
Afto to exw valei, katw apo ta kwdika pou ftiaxnoune ta combonents (buttons / forms ktl)

mou vgazei errors sto connection, otan prospathw na ton kanw compile.

Exw diavasei sxetika me winshock, den mporw na sas pw pws eimai ekseretikos gnwstis, parola afta prospathw na to katalavw oso kalitera ginete.

Diavasa kai ta parakatw

http://msdn2.microsoft.com/en-us/librar ... tener.aspx

http://msdn2.microsoft.com/en-us/librar ... lient.aspx

kai ida, pws ekei, ston server orizei to adress kai to port eswterika kai oxi me ta text box pou to kanw egw. Afto den me enoxlei, giati kai eswterika na kanw tin dilwsi, ergasia gia tin sxoli einai, oxi gia kamia etairia megali. Tha prospathisw na to kalipsw me to report mou.

Tha mporouse kapoios na m dwsei kapoia voitheia? Giati exw pelagwsei teloios :(

Ean iparxei kai i lisi, na xrisimopoiisw kapoion kainourgio kwdika tha to dextw, parola afta prepei na einai apo kapoio tutorial, i dimosievmenos sto fteestuff.gr, gia na mporesw na to xrisimopoiisw san pigi.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

C++ server / client application

Δημοσίευση από dva_dev » 11 Μαρ 2008 21:12

Δες και αυτά:
http://www.codeproject.com/KB/cpp/UDP_w ... ocket.aspx
http://www.codeproject.com/KB/IP/serversocket.aspx

ΥΓ: Το UI δεν σημαίνει απαραίτητα GUI (και το command line UI είναι).
fteestuff.gr
:D

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

C++ server / client application

Δημοσίευση από Basilakis » 11 Μαρ 2008 21:22

Ta exw dei afta, panw se afta exw vasisei ton kwdika mou :S Parola afta, ta perissotera einai CMD

s-hs

C++ server / client application

Δημοσίευση από s-hs » 11 Μαρ 2008 23:29

έχω κάνει ένα client-server πρόγραμμα στην C στην σχολή αλλά με sockets (στα Linux). Κοίταξε το και μακάρι να σε βοηθήσει.
http://breakdesign.blogspot.com/search/ ... Programing

έχει και documentation στα Ελληνικά

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

C++ server / client application

Δημοσίευση από Basilakis » 11 Μαρ 2008 23:40

ta linux xrisimopoioune BSD sockets. Kati teleiws diaforetiko apo Winsock. Kai den to sizitaw gia c me C++ :/

se efxaristw gia ton xrono s parola afta

Programmer
Δημοσιεύσεις: 67
Εγγραφή: 22 Σεπ 2007 06:55

C++ server / client application

Δημοσίευση από Programmer » 12 Μαρ 2008 20:01

διάβασε το βιβλίο Network Programming for Microsoft Windows

μπορέις να το κατεβάσεις από το http://www.flazx.com/ebook5541.php
και το νεώτερο (για .ΝΕΤ) από το http://www.flazx.com/ebook3478.php

(τα βιβλία έιναι εκεί παράνομα αλλα φοιτητής είσαι να μην ξοδέυεσαι...)

υ.γ. γραφε βρε παιδί σε Ελληνικά να μην μας κουράζεις χωρίς λόγο...

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

C++ server / client application

Δημοσίευση από Basilakis » 12 Μαρ 2008 20:32

Den katalaves. Exw ftasei kapou kai exw kolisei. Den einai to thema, na ta ksanadiavasw ola apo tin arxi ;)

Aplws xreiazomai mia proothisi, se afto p exw kanei mexri twra :D

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες