konos01 Δημοσ. 8 Δεκεμβρίου 2008 Δημοσ. 8 Δεκεμβρίου 2008 Χαιρεται! εχο μια εργασια να κανω στη C. Ωστοσο δεν εχο εγκατεστημενο προγραμμα που να τρεχει σωστα την C. Exω το Visual Express Studio 2008, τα προγραμματα της C++ τρεχουν μια χαρα.. ομως με τη C εχω προβλημμα.. γιαυτο αν μπορει καποιος να με βοηθησει!! το προγραμμα που εχω ειναι το εξης: #include <stdlib.h> #include <stdio.h> #include <cnaiapi.h> #define BUFFSIZE 256 #define INPUT_PROMPT "Input > " #define RECEIVED_PROMPT "Received> " int recvln(connection, char *, int); //recvln=recieve line int readln(char *, int); /*----------------------------------------------------------------------- * * Program: chatserver * Purpose: wait for a connection from a chatclient & allow users to chat * Usage: chatserver <appnum> * *----------------------------------------------------------------------- */ int main(int argc, char *argv[]) { connection conn; int len; char buff[bUFFSIZE]; if (argc != 2) { (void) fprintf(stderr, "usage: %s <appnum>\n", argv[0]); exit(1); } (void) printf("Chat Server Waiting For Connection.\n"); /* wait for a connection from a chatclient */ conn = await_contact((appnum) atoi(argv[1])); if (conn < 0) exit(1); (void) printf("Chat Connection Established.\n"); /* iterate, reading from the client and the local user */ while((len = recvln(conn, buff, BUFFSIZE)) > 0) { (void) printf(RECEIVED_PROMPT); (void) fflush(stdout); (void) write(STDOUT_FILENO, buff, len); /* send a line to the chatclient */ (void) printf(INPUT_PROMPT); (void) fflush(stdout); if ((len = readln(buff, BUFFSIZE)) < 1) break; buff[len - 1] = '\n'; (void) send(conn, buff, len, 0); } (void) send_eof(conn); (void) printf("\nChat Connection Closed.\n\n"); return 0; } υπαρχει και το αναλλογο για τον chat client.. αυτο που θελω να κανω ειναι να στελνω απο τον client μια εκφραση της μορφης : <integer><keno><+,-,*,/><keno>interger><enter>,να στελνεται στον server,να γινεται ο υπολογισμος και το αποτελεσμα να επιστρεφεται στον client.. Σκεφτομουν να τροποποιησω καπως ετσι το προγραμμα του server.. aν μπορει κανεισ να μου πει τη γνωμη του πανω στο θεμα,γιατι δεν μπορω να ελεξω τα αποτελεσματα! int a,b,num1,num2; char n1[bUFFSIZE],n1[bUFFSIZE]; bool error; string msg; error=FALSE; a=FindChar(" ",buff,0); //vriskei to proto keno xaraktira n1=SubString(buff,0,a-1); //vazei sto n1 ton proto arithmo b=IthChar(buff,a+1); //vazei sto b ton telesti tis praksis a=FindChar(" ",buff,a+1); //vazei sto a ton proto keno xaraktira meta ton telesti n2=SubString(buff,a+1,StringLength(buff)); //vazei sto n2 to deftero arithmo num1=StringtoInteger(n1); num2=StringtoInteger(n2); if (b=="+") { result=num1+num2; else if (b=="-") { result=num1-num2; else if ( b=="*") { result=num1*num2; else { if (num2=!) { result=num1/num2; } else { Buff="Error,tried to divide with zero" ; error=TRUE; } } msg=IntergetToString(result); if (error) { msg="There was an error,plz try again."; } (void) printf(result); (void) fflush(stdout); buff[len - 1] = '\n'; (void) send(conn, buff, len, 0);
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.