luca94 (Normal User)
Pro
Messaggi: 71
Iscritto: 07/05/2008
|
Ciao a tutti,
ho creato un semplice programma che fa da server. Ascolta sulla porta 5000.
Ecco il source:
Codice sorgente - presumibilmente C++ |
#include <stdio.h> #include <sys/socket.h> #include <arpa/inet.h> #include <netinet/in.h> #include <stdlib.h> #include <string.h> #define PORT 5000 int main(int argc, char* argv[]) { int sck; int sck2; int peso; int l; char buff[30]; system("clear"); printf("Programma con le socket\n"); struct sockaddr_in sock_c; struct sockaddr_in sock_s; sock_s.sin_family = AF_INET; sock_s.sin_port = htons(PORT); sock_s.sin_addr.s_addr = 0; sck = socket(AF_INET,SOCK_STREAM,0); bind(sck,(struct sockaddr *)&sock_s,sizeof(struct sockaddr)); if (l = listen(sck,10) < 0) { printf("Impossibile ascoltare le connesioni\n"); } else { printf("Porta= %d",PORT); printf("\n"); printf("In attesa di una connessione...\n"); while(1) { peso = sizeof(struct sockaddr_in); if (sck2 = accept(sck,(struct sockaddr *)&sock_c,&peso) < 0) { } else { printf("Connesso\n"); } } } }
|
Una volta compilato, lancio il server, apro telnet e mi connetto sulla porta 5000 cosė:
Codice sorgente - presumibilmente Plain Text |
In effetti il mio server risponde "Connesso" ma non riesco ad inviare dati al client. Come devo fare ad inviarli una volta effettuata la connessione? Chiramente i dati devo esere visualizzati dal client. So che devo farlo col comando "send" ma nn riesco. Ho provato in tutti i modi
Potreste essere cosė gentili da modificarmi il codice in modo che quando il client si connette esso riceva un messaggio con scritto "ciao" dal server? Ultima modifica effettuata da luca94 il 01/07/2009 alle 15:26 |