Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-01-2005, 10: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 11:25.
Ricky è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2005, 11: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


L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
Insieme a Leica SL3-P presentate le otti...
La Cina svilupperà anche il razzo...
Rocket Lab e la missione Victus Haze per...
Starship: Ship 40 ha eseguito uno static...
I nuovi Samsung Galaxy Watch 9 si mostra...
Einsten aveva ragione, di nuovo: captate...
Top 10 offerte Amazon: 5 sono partite qu...
AI Conf 2026: l'intelligenza artificiale...
Samsung Galaxy S26 scende a 711,49€: un ...
Dopo il maxi blackout, la Spagna cambia ...
Costa meno di un MacBook e fa molto di p...
Ecco tutti i robot aspirapolvere rimasti...
Più partite da seguire in contemporanea?...
389€ sono veramente pochi per questo PC ...
Vesuvius Challenge: srotolato in digital...
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: 00:43.


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