|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#41 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
rich_file[i+1]="\0";
Magari intendevi: rich_file[i+1]='\0'; Strano che ti funzioni... Comunque il problema è altrove...mi raccomando non ti sparare :o La sequenza di fine riga è \r\n e non \n\r come usi tu !!! Guarda questo programma e prova con un browser a connetterti dulla porta 8000 e vedrai che esce quando il browser ha terminato la richiesta... Codice:
#include "sock.h"
#include <stdio.h>
#include <stdlib.h>
#define PORT 8000
int main()
{
int sock, newsock;
char cliente[1025];
char buffer[10241];
int n, i, pos = 0;
if((sock = Socket()) < 0)
return -1;
Bind(PORT, sock);
Listen(sock);
if((newsock = Accept(sock, cliente)) < 0)
return -1;
printf("\n\n----------------------------------------------\n");
printf("Richiesta da [%s]\n",cliente);
fflush(stdout);
do {
n = Read(newsock, buffer+pos, 10240-pos);
if(n <= 0)
return -1;
pos+=n;
printf("\nPos: %d N: %d\n", pos, n);
for(i=pos-n; i<pos; ++i)
printf("%d ", buffer[i]);
} while(buffer[pos-4] != '\r' || buffer[pos-3] != '\n'
|| buffer[pos-2] != '\r' || buffer[pos-1] != '\n');
buffer[pos] = '\0';
printf("\n%s\n",buffer);
close(newsock);
close(sock);
Sockend();
system("PAUSE");
return 0;
}
|
|
|
|
|
|
#42 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#43 | |
|
Member
Iscritto dal: Feb 2001
Messaggi: 73
|
Quote:
"\0" e '\0' dovrebbe essere la stessa cosa no? solo che con il secondo si piglia un solo carattere.... o no? ... beh adesso faccio un po di prove ma... il fatto del \r\n mi fa puzzare il naso ... visto che la connessione è pignolissima con l'[invio] o a capo come preferisci ^^' Sbabbariiii imo a provare... Grazie
__________________
AMD Athlon XP 2000+ , Biostar M7VIF con KT333 , 1 GB DDR RAM PC2700 , HD Maxtor 40 GB , ATI Radeon 8500 BBA |
|
|
|
|
|
|
#44 |
|
Member
Iscritto dal: Feb 2001
Messaggi: 73
|
.....
infatti era quel maledetto \r\n ..... lo sapevo che era una *censured* .... Grazie almeno questo problema è risolto ora vedo se farci altre cose se ho bisogno ti assillo ancora Grazie mille
__________________
AMD Athlon XP 2000+ , Biostar M7VIF con KT333 , 1 GB DDR RAM PC2700 , HD Maxtor 40 GB , ATI Radeon 8500 BBA |
|
|
|
|
|
#45 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Quindi ora il browser te la vede l'immagine ? |
|
|
|
|
|
|
#46 |
|
Member
Iscritto dal: Feb 2001
Messaggi: 73
|
beh pero se metti in un char un unico elemento di una stringa..... vabbè è un pasticcio
Si ora mi vede tutto .. pero riesco a inviare solo .. mmm 2 immagini e poi è come se non mi aspettasse piu richieste..... devo vedere cosa può essere... so solo che subito mi inviava UNA sola immagine poi ho messo un aCapo alla fine dell'invio del file e ora me ne invia due.... e basta... boh? ....
__________________
AMD Athlon XP 2000+ , Biostar M7VIF con KT333 , 1 GB DDR RAM PC2700 , HD Maxtor 40 GB , ATI Radeon 8500 BBA |
|
|
|
|
|
#47 |
|
Member
Iscritto dal: Feb 2001
Messaggi: 73
|
C'e' un comando simile alla fork in windows? o un algoritmo per ricevere piu richieste dalla stessa porta?
__________________
AMD Athlon XP 2000+ , Biostar M7VIF con KT333 , 1 GB DDR RAM PC2700 , HD Maxtor 40 GB , ATI Radeon 8500 BBA |
|
|
|
|
|
#48 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ci sono i thread in Windows...
L'API da usare è CreateThread...ovviamente non è portabile... Riguardo a gestire più socket con lo stesso thread...si può fare benissimo... Basta gestire le send e le receive in maniera non bloccante...certo non è una cosa semplice... |
|
|
|
|
|
#49 |
|
Member
Iscritto dal: Feb 2001
Messaggi: 73
|
Ciao sto ancora qua -___-"
Alla fine del protocollo inviata la testata e il file ci vogliono un certo n° spazi???? ùMi succede che mi invia la pagina, 2 immagini e poi si blocca... Per far arrivare tutta la pagina devo premere alcune volte "VAI" in Ie e dopo due o tre volte arriva tutto ... cosa puo causare questo?? ho provato a farci fare uno.. due .. piu spazi alla fine del processo di invio solo che ho risolto appunto che mi manda 2 o tre immagini invece di una sola...
__________________
AMD Athlon XP 2000+ , Biostar M7VIF con KT333 , 1 GB DDR RAM PC2700 , HD Maxtor 40 GB , ATI Radeon 8500 BBA |
|
|
|
|
|
#50 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sinceramente non lo so... Credo che al limite ci voglia un \r\n..
|
|
|
|
|
|
#51 |
|
Member
Iscritto dal: Feb 2001
Messaggi: 73
|
Sto testando e.... suppongo che sia questione di Compilatore ora...
io usavo un GCC che è il JFE della Massey university .... (fico 2 MB di compilatore) ora sto provando col Cygwin .. emulatore Unix e gia funziona pero mi da noie con alcuni percorsi di file..... credo che proverò col Visual C++ tra poco -_-" anche se non ho dimestichezza.... hai qualche consiglio in quanto a compilatori???
__________________
AMD Athlon XP 2000+ , Biostar M7VIF con KT333 , 1 GB DDR RAM PC2700 , HD Maxtor 40 GB , ATI Radeon 8500 BBA |
|
|
|
|
|
#52 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
mingw...IMHO il miglior porting per Win32 di GCC...
Se vuoi anche un IDE: www.bloodshed.net |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:42.



















