Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti sono nuovo del forum e posto qui perchè so che siete gli unici a farmi chiarire un pò le idee perchè sto facendo una confusione mai vist...
Allora vi spiego il Client e il Server comunicano fra loro perfettamente senza problemi però quello che riesco a far inviare è solo una stringa io invece vorrei che il client invii un file al server ma so che per fare cio visto che il C non dispone di un comando per inviare file bisogna
1.Aprire il file
2.Leggere il contenuto del file
3.Copiarlo in memoria
4.inviarlo al server tramite send()
Mentre per il Server
1.Ricevere il messaggio
2.leggerlo
3.Salvarlo in un file
Beh.. io le sto provando tutte ma quando compilo mi da sempre errore
Pultroppo guide complete su questo argomento non ne ho trovate se qualcuno abbia la bontà di spiegarmelo ne sarò grato
Se compili e hai un errore perché non ce lo mostri?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
Allora in poche parole non mi fa scrivere il percorso del file che voglio aprire ora ve lo posto cmq lo sto compilando con visual c++ perchè con mingw non lo riuscivo a compilare quando implementavo la winsock... questo è anche un'altro problema che vorrei essere spiegato :\!!!!
cmq ecco il codice
Codice sorgente - presumibilmente C++
#include "stdafx.h"
#include "winsock2.h"
#include "string.h"
#define FILE_w = "prova.txt"
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA wsaData;
int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
printf("Client:Errore Invio dati %ld \n", WSAGetLastError ());
else
{
printf("Client:Byte Inviati: %ld \n", bytesSent);
printf("Client: La stringa di prova inviata: \"%s\"\n", sendbuf);
}
// Apre file
FILE*fp;
fp =fopen(FILE_w,"r");
while(!feof(fp))
{
bytesSent = send(m_socket, fp,strlen(sendbuf),0);
if(bytesSent == SOCKET_ERROR)
printf("Client:Errore Invio dati %ld \n", WSAGetLastError ());
//qui mi sono bloccatooo
}
WSACleanup();
return0;
}
In poche parole se inserisco una stringa in "sendbuf e la voglio inviare al server funziona perfettamente ma non ho capito come posso fare se voglio inviare un file di testo o ad esempio una stringa scritta da tastiera se qualcuno mi può spiegare :\ e scusate x la confusione :P
Ultima modifica effettuata da Valcars il 15/10/2013 alle 17:33
Prima scrivi "quando compilo mi da sempre errore" e quando ti chiedo l'errore non lo dici ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
mi da errore C699 fopen che dice di cambiarlo in fopen_s con visual c++ l'ho provato a cambiare ma mi da erroe quando metto il nome del file
es
nel codice ho messo un #define File_w = "prova.txt" per aprire il file però quando vado a usare la funzione
FILE *fp
fp = fopen(File_W,"r"); <----- mi da errore su File_W e mi dice di cambiare in fopen_s ho provato a cambiare ma sempre la stessa cosa.....ti ripeto mi sono bloccaTO qua non so nemmeno se il file lo invia o no ancora devo provare perchè non riesco a capire quale sia il problema....
spero di essere stato un pò + chiaro ora......!!!
Ultima modifica effettuata da Valcars il 15/10/2013 alle 18:10
mi da errore C699 fopen che dice di cambiarlo in fopen_s con visual c++ l'ho provato a cambiare ma mi da erroe quando metto il nome del file
Quello non è un errore ma una raccomandazione. Per ora puoi ignorarla ...
Ti viene proprio indicato come "error" o "warning" ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
nessuno ho risolto il problema ho compilato il file con mingw e non mi ha dato problemi però ora ho un'altro problema ho scritto sia il client che il server e quando li compilo non mi da nessun errore però quando cerco di avviare i 2 exe il server rimane aperto mentre il client si chiude subito senza darmi errore....
ora vi posto i sorgenti se potete dirmi dove sto sbagliando e se ci vuole qualche aggiustatina
CLIENT
Codice sorgente - presumibilmente C++
#include "stdio.h"
#include "winsock2.h"
#include "string.h"
#define files "prova1.txt"
int main()
{
//---Inizializza Winsock
WSADATA wsaData;
int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);