PDA

Visualizza la versione completa : [C] Trasferire file da client ad un'applicazione server


PeppePes88
06-07-2007, 09:04
ciao!!

qualcuno mi sa siegare perchè questo mini server, proprio mini mini; funziona solo in locale??? se le inserisco un ip diverso questo mi da degli errori in tutte le funzioni....

#include <stdio>
#include <winsock>

int main ( void) {

WSADATA data ;
int err = WSAStartup(MAKEWORD(2,2), &data), ByteSend;
SOCKET sock, AcceptSock;
SOCKADDR_IN sock_in;
char saluto[]= "ciao dal server";


printf("SERVER SCRITTO Da ME !!!!\n\n\n");


if ( err != NO_ERROR) printf(" Libreria non inizializata corretamente\n");

sock = socket(AF_INET, SOCK_STREAM, 0);

if ( sock == INVALID_SOCKET) printf("Socket non creato\n");

sock_in.sin_family= AF_INET;
sock_in.sin_port = htons(456);
sock_in.sin_addr.S_un.S_un_b.s_b1=192;
sock_in.sin_addr.S_un.S_un_b.s_b2=168;
sock_in.sin_addr.S_un.S_un_b.s_b3=0;
sock_in.sin_addr.S_un.S_un_b.s_b4=1;

if ( bind (sock, (SOCKADDR*)&sock_in, sizeof(SOCKADDR_IN)) != 0 ) printf("Funzione Bind non riuscita\n");
if ( listen(sock, 1) != 0 ) printf("funzione listen non riuscita");

AcceptSock = accept(sock,NULL, NULL);

if ( AcceptSock == SOCKET_ERROR ) printf("funzione accept non funziona\n");
else
printf("Connesione avenuta");


ByteSend = send (AcceptSock, saluto, sizeof(saluto), 0);

if (ByteSend == SOCKET_ERROR) printf(" funzione SEND non attiva");
else printf("Byte inviati %d", ByteSend);



system("PAUSE");

return 0;

} :berto:

bigmickey
06-07-2007, 09:51
Vuoi cambiare IP alla tua macchina?

oregon
06-07-2007, 13:55
Non ho capito ... la tua macchina ha IP 192.168.0.1 e se cambi l'IP al PC e la programma non funziona?

PeppePes88
06-07-2007, 17:14
ho sbagliato postando il codice!!!

l'ip deve essere quello di local host... 127.0.0.1 è funziona!!!
se inserisco l'ip dell'altra macchina con cui è collegato in LAN non funziona più....
non capisco il perchè???
capito??

oregon
06-07-2007, 20:58
Ma che stai dicendo?

menphisx
06-07-2007, 22:06
Ma se scrivi un server, gira perforza su localhost (127.0.0.1) :dottò:

oregon
06-07-2007, 22:32
Un server ascolta su uno degli IP detenuti dal sistema, non necessariamente su localhost.

Quello che non si capisce e' quello che sta dicendo ...

PeppePes88
07-07-2007, 08:34
dalle vostre risposte mi sono reso conto che non ho capito niente dei socket e dell'architettura server/client!!!

scusate non mi sono espresso bene!!!

comunque se voglio creare un programma che risiede in un computer e un altro programma che risiede in un altro computer, collegati tramite rette locale e voglio che questi comunichino tra loro come faccio??? Uso i socket e le loro funzioni no??

capito???

oregon
07-07-2007, 08:46
Sì ... ma uno fa da server e l'altro da client ...

Il codice del client tu non l'hai mostrato ...

Ti consiglio di rivedere i concetti teorici di base prima di lanciarti a scrivere il codice ...

PeppePes88
07-07-2007, 09:02
Come client io uso telnet!!!!

mi conneto a quel programma che ho postato sopra e lui mi invia una semplice stringa!!!!

niente di piu ma volevo che facesse la stessa cosa in una lan!!!

capito??

ho provato anche a scrivere il client!! funziona ma sempre si ripresenta lo stesso problema in lan non funziona.... se voleto lo scivo???

Loading