Oppure

Loading
06/07/10 20:51
Franck ... se ti chiedo "gli errori" e tu dici "non funziona", non andremo molto d'accordo ...

E poi, il server, qual è?
06/07/10 20:57
Franck
Questi sono gli errori
main.obj : error LNK2019: riferimento al simbolo esterno _closesocket@4 non risolto nella funzione _main
main.obj : error LNK2019: riferimento al simbolo esterno _send@16 non risolto nella funzione _main
main.obj : error LNK2019: riferimento al simbolo esterno _connect@12 non risolto nella funzione _main
main.obj : error LNK2019: riferimento al simbolo esterno _htons@4 non risolto nella funzione _main
main.obj : error LNK2019: riferimento al simbolo esterno _socket@12 non risolto nella funzione _main
main.obj : error LNK2019: riferimento al simbolo esterno _WSAStartup@8 non risolto nella funzione _main
aaa
06/07/10 21:01
Allora non è che "non funziona" ma non viene "compilato" ... è un'altra storia.

Sono errori del linker che ti informa che non sa dove trovare quelle funzioni di libreria.

Inserisci all'inizio del codice la linea

#pragma comment(lib, "ws2_32.lib";)

e prova a compilare nuovamente.

Tra l'altro, il codice che hai mostrato è in C non in C++ ...
Ultima modifica effettuata da 06/07/10 21:02
06/07/10 21:07
Franck
mi da questo errore.
Run-Time Check Failure #3 - The variable 'ch' is being used without being initialized.
mi servirebbe una spiegazione coma faccio ad inviare al server il messaggio da me impostato.

p.s.
ancora il server non lo scritto^^
aaa
06/07/10 21:13
Postato originariamente da Franck:

mi da questo errore.
Run-Time Check Failure #3 - The variable 'ch' is being used without being initialized.


Deve essere

char ch = 0;

mi servirebbe una spiegazione coma faccio ad inviare al server il messaggio da me impostato.

p.s.
ancora il server non lo scritto^^


Dopo che hai scritto il server ...
07/07/10 11:52
Franck
cosa devo sistemare in questo codice.
#include <windows.h>
#include <winsock.h>
#include <stdio.h>
#pragma comment(lib, "ws2_32.lib") 

int main(int argn,char **argv){
int err = 0,errori = 0;
SOCKET sock; // creo la socket chiamato sock che userò nella connessione
struct sockaddr_in sock_addr; // inizializzo la socket
WSADATA data;  // inizializzo la variabile che contiene le primitive di Winsock
WORD p;
p=MAKEWORD(2,0);  // creo la variabile p che contiene la versione della wsock32.dll
char messaggio[2000];

for(int x=0;;x++){
err = WSAStartup(p,&data); // inizializzo la wsock32.dll verificandone la mancanza di errori

sock=socket(PF_INET,SOCK_STREAM,0);  // creo la socket indicandone le caratteristiche
sock_addr.sin_family=PF_INET; // indico il protocollo utilizzato (TCP/IP)
sock_addr.sin_port=htons(1111); //indico la porta a cui connettere la socket
sock_addr.sin_addr.S_un.S_un_b.s_b1=127; // indico l'indirizzo IP
sock_addr.sin_addr.S_un.S_un_b.s_b2=0;
sock_addr.sin_addr.S_un.S_un_b.s_b3=0;
sock_addr.sin_addr.S_un.S_un_b.s_b4=1;
err = connect(sock,(struct sockaddr*)&sock_addr,sizeof(struct sockaddr)); // mi connetto all'indirizzo scelto
//*********************dialogo***********************//
if(x==0){
char mex[2000];
recv(sock,mex,2000,0);
printf("FROM server: %s",mex); 	 
}
printf("commands> ");
gets(messaggio);
if(messaggio[0] == 'e' && messaggio[1] == 'x' && messaggio[2] == 'i' && messaggio[3] == 't')
break;
errori = send(sock,messaggio,2000,0);
if(errori == 2000){
printf("2000 comando:  %s\n",messaggio);
}else{
printf("errore send() %d\n" ,errori);
}		 
closesocket(sock);  // chiudo la socket
WSACleanup();       //libero le risorse utilizzate dalla libreria Winsock
}//end for
printf("\n\n%d\n",err);
return 0;
}
aaa
07/07/10 12:13
Diccelo tu, se l'hai scritto, compilato e usato !

Finora ho avuto molta pazienza, ma questo non è il modo di usare un forum di programmazione ...

07/07/10 13:14
HeDo

vista la totale mancanza di volontà dello starter del thread mi vedo costretto a lockare.

franck, non si usa così il forum.
aaa