Risolto. Per chi fosse interessato posto il codice.
----SERVER----
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <errno.h>
#include <netdb.h>
#define BACKLOG 5
void error(char *msg)
{
perror(msg);
exit(1);
}
int main(int argc, char *argv[])
{
struct hostent *h;
int sockfd, new_fd, port, n;
char recvBuff[254];
char *msg = "MESSAGGIO RICEVUTO\n";
struct sockaddr_in my_addr, their_addr;
if(argc<2)
{
error("INSERIRE IL NUMERO DI PORTA\n");
}
port=atoi(argv[1]);
/* creazione Socket */
if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
error("socket");
};
/* inizializzazione della struttura socket */
bzero((char *) &my_addr, sizeof(my_addr));
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(port);
my_addr.sin_addr.s_addr = htonl(INADDR_ANY);
/* Bind */
if((bind(sockfd, (struct sockaddr *)&my_addr, sizeof(my_addr))) == -1)
{
error("bind");
};
/* Listen */
if((listen(sockfd,BACKLOG))==-1)
{
error("listen");
}
int sin_size;
sin_size = sizeof(their_addr);
printf("SERVER AVVIATO\n");
/* Accept */
while(1)
{
if((new_fd = accept(sockfd,(struct sockaddr *)&their_addr, &sin_size))==-1)
{
error("accept");
}
printf("Utente: %d connesso\n",getpid());
n = read(new_fd, recvBuff, 254);
if(n<0) error("read");
printf("Message: %s\n", recvBuff);
bzero(recvBuff, strlen(recvBuff));
n = write(new_fd, msg, strlen(msg));
if(n<0) error("write");
close(new_fd);
}
close(sockfd);
exit(0);
}
----CLIENT----
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include<arpa/inet.h>
#include <errno.h>
#include <string.h>
void error(char *msg)
{
perror(msg);
exit(1);
}
int main(int argc, char *argv[])
{
int sockfd, port, n;
char sendBuff[254];
char recvBuff[254]="";
struct sockaddr_in my_addr;
if(argc<2)
{
error("INSERIRE IL NUMERO DI PORTA\n");;
}
port=atoi(argv[1]);
if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
error("socket");;
};
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(port);
my_addr.sin_addr.s_addr = htonl(INADDR_ANY);
if((connect(sockfd,(struct sockaddr *)&my_addr,sizeof(my_addr)))==-1)
{
error("connect");
}
bzero(sendBuff, 254);
printf("(CLIENT) WRITE A MESSAGE\n");
fscanf(stdin, "%[^\n]", sendBuff),
n = write(sockfd, sendBuff, strlen(sendBuff));
if(n<0) error("write");
bzero(recvBuff, 254);
n = read(sockfd, recvBuff, 254);
if(n<0) error("write");
printf("%s",recvBuff);
exit(0);
}