Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-01-2005, 11:32   #1
Ricky
Senior Member
 
Iscritto dal: Oct 1999
Città: Milano
Messaggi: 531
problema socket!:(

salve ragazzi, ho scritto due semplici programmini, un client e un server:
il client deve leggere al momento della connessione una stringa da un server....solo che non riesco a connettermi!! qualcuno può aiutarmi a trovare l errore?

vi posto il codice:

Codice:
#include <errno.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include </mnt/windows/progetto/netio.h>
#include <string.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <signal.h>
#define PORTNUM 50000
#define MAXNAME 20
#define MAXHOSTNAME 30
/*---------------------
crea un socket che accetterà
la prima parte della connessione di un client
Ritorna il descrittore del socket creatO
----------------------------------------*/

int creacon(u_short portnum);

/*------------------------
Routine che crea un accept
per avere poi il descrittore
di un secondo socket sul quale verrà
stabilita la connessione.la chiamata
è sospensiva
--------------------------*/
int attendicon(int s);

/*------------------------
esempio di dialogo tra server e
client
---------------------------*/
int gestisciclient(int sock_fd);

/*--------------------------
gestione di stringhe
----------------------------*/

int main(){
	int s,t;
	int tid[10];
	char nome[MAXHOSTNAME+1];
	char indirizzo[MAXNAME+1];
	
	
	if ( (s = creacon(PORTNUM)) < 0){
		perror("errore:prima connessione");
		exit(1);
	}
	gethostname(nome,MAXHOSTNAME);
	printf("il localhost : %s ",nome);
	
	printf("tutto apposto aspetto che si connette un client\n");
	while(1){
		if ((t=attendicon(s))<0){
			if (errno==EINTR){
				continue;
			}
			perror("accept");
			exit(1);	
		}
		if (gestisciclient(t)<0){
			perror("errore nel write");
			close(t);
			continue;
		}
		close(t);
		exit(0);
	}	
}

int creacon(u_short portnum){ 
	char nome[MAXHOSTNAME+1]; //nome del socket;
	int s;		//descrittore del socket
	struct sockaddr_in sa; //struttura
	  
	
	bzero(&sa,sizeof(sa));  //AZZERO SA
	sa.sin_family = AF_INET;
	sa.sin_port = htons(portnum);
	
	if ((s=socket(AF_INET,SOCK_STREAM,0))< 0)
		return(-1);
	if (bind(s,(struct sockaddr*)&sa,sizeof(struct sockaddr))==-1){
		close(s);
		return(-1);
	}
	listen(s,3);
	return(s);
}

int attendicon(int s){
	struct sockaddr_in isa; //struttura dove andrà l indirizzo
	int i ; //dimensione dell'isa 			
	int t ; //socket dell'accpet

	i=sizeof(isa);
	if (( t = accept(s,(struct sockaddr *)&isa,&i)) < 0 )
		return(-1);
	return(t);
} 	

int gestisciclient(int sock_fd){
	char buffer[MAXNAME+1];
	
	printf("sono entrato??!?\n");
	strcpy(buffer,"messaggio");
	if (FullWrite(sock_fd,buffer,sizeof(buffer))<0){
		perror(" errore nelle write di spedizione!\n");
		return(-1);
	}
	return(0);
}

questo è il server, il client invece...:

#include <errno.h> 
#include <sys/types.h> /* predefined types */
#include <unistd.h> /* include unix standard library */
#include <arpa/inet.h> /* IP addresses conversion utilities */
#include <sys/socket.h> /* socket library */
#include <stdio.h> /* include standard I/O library */
#include </mnt/windows/progetto/netio.h> /*personale mia libreria*/
#include <netdb.h>
#define MAXLINE 80
#define BACKLOG 10
#define PORTNUM 50000



int  socket_call(char *hostname, u_short portnum);

int main(int argc,char *argv[]){
   int sock_fd;
   char buffer[MAXLINE+1];

  if (argc!=2){
   	printf("usage: %s <hostname>\n",argv[0]);
  	exit(-1);
  }
printf("DEBUG: ho inserito: %s\n",argv[1]);
   printf("CLIENT: provo a connettermi\n");
   if ((sock_fd=socket_call(argv[1],PORTNUM)) == -1){
		perror("socket_call");
      exit(-1);
   }
   printf("la connessione è stata effettuata ora leggo la parola inviatami dal server\n");
   printf("leggo la stringa inserita nel server!!\n");
   if (FullRead(sock_fd,buffer,5)<0){
   	perror("fullwrite");
      exit(-1);
   }
   getchar();
   exit(0);
}

int  socket_call(char *hostname, u_short portnum){
	int sock_fd ;
	struct sockaddr_in serv_add ;
	int temp;
	struct hostent *hp;
 /* creo il socket sul quale farò la connessione */
	if ((sock_fd=socket(AF_INET,SOCK_STREAM,0))< 0){
		perror(" Socket   creation   error ");
		return(-1);
      }
 
/* inizializzo serv_add */
      memset (( void *) & serv_add , 0 , sizeof ( serv_add )); /* clear */
	serv_add . sin_family = AF_INET ; /* indirizzo type : INET */
 	serv_add . sin_port = htons (13); /* daytime post is 13 */

 /* build address using inet_pton */
 	
 	
	
	if ((temp=inet_pton (AF_INET , hostname , &serv_add.sin_addr )) <= 0){
      		if (temp == 0){ printf("non ho trovato una stringa valida!!\n"); }
		perror (" Address   creation   error ");
         	return(-1);
 	}


 /* extablish connection */
 	
	if (connect( sock_fd , (struct sockaddr *)&serv_add , sizeof (serv_add)) < 0){
 		perror (" Connection   error ");
 		return(-1);
        }
      	return(sock_fd); /*effettuata la connessione!!*/
}
Mi dice che la connessione è stata rifiutata!
dopo aver compilato mando il server in esecuzion che aspetta sull'accept, ma quando mando in esecuzione il client non va!

come indirizzo metto quello del localhost...ma niente!
__________________
Vintage signature: Abit nf7-s, Xp 2500+@2300mhz, 256 mb 418mhz cas2, geforce fx5700,S-ATA 160 Maxtor,Lg gsa 4120b...prima..ma ora..DELL INSPIRON 6400, ATI X1300...

Ultima modifica di Ricky : 15-01-2005 alle 12:25.
Ricky è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2005, 12:24   #2
Ricky
Senior Member
 
Iscritto dal: Oct 1999
Città: Milano
Messaggi: 531
forse ho capito dov è il problema:
nell uso dell' "INET_PTON"
dovrei riuscire a convertire una stringa di caratteri che rappresenta l'hostname
in un indirizzo che verrà memorizzato nella struttura sockaddr.
il problema è che mi da un errore: mi dice che la stringa non è valida!!

nella chiamata a:
Codice:
if ((temp=inet_pton (AF_INET , hostname , &serv_add.sin_addr )) < 0){
                if (temp == 0){ printf("non ho trovato una stringa valida!!\n"); }
                perror (" Address   creation   error ");
                return(-1);
        }
hostname è una stringa, serv_add è la struttura nella quale dovrebbe memorizzare l indirizzo...ma non va! temp mi esce sempre = 0 !!

aiutooooooo
__________________
Vintage signature: Abit nf7-s, Xp 2500+@2300mhz, 256 mb 418mhz cas2, geforce fx5700,S-ATA 160 Maxtor,Lg gsa 4120b...prima..ma ora..DELL INSPIRON 6400, ATI X1300...
Ricky è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Pokémon Rosso Fuoco e Verde Foglia: in a...
Autodesk ha denunciato Google: il marchi...
ROG Kithara: le cuffie gaming di ASUS si...
DAZN sconta il piano Full: 6 mesi a prez...
Nuovi sconti (e coupon), nuova top 10 be...
A soli 18€ su Amazon, il compressore por...
Google Pixel 10a avrà un'autonomi...
Notebook da gaming in abbonamento: il se...
Computer personalizzati venduti senza RA...
ARC Raiders ha sfiorato il milione di ut...
Galaxy S25 12GB/512GB al minimo storico,...
Roscosmos ha lanciato il satellite meteo...
Starship Troopers: Ultimate Bug Wars, to...
Il razzo spaziale europeo Ariane 6, per ...
Oracle Fusion Cloud Applications si pote...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:24.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v