Guardate il problema è questo:
server:
codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <errno.h>
#include "lib.h"
#define BUFFER_SIZE 1024
#define PORT 3666
#define BACKLOG 5
#define MAXLINE 1024
int main(void)
{
int fd,fd2, socket_list, socket_conn, nread;
struct sockaddr_in server;
char buffer[BUFFER_SIZE],bufferStr[BUFFER_SIZE],buff[BUFFER_SIZE];
pid_t pid;
int i,j;
/* creazione di un socket per accettare connessioni */
socket_list = Socket(AF_INET, SOCK_STREAM, 0);
/* definizione di dominio, porta e indirizzo del server */
server.sin_family = AF_INET;
server.sin_port = htons(PORT);
server.sin_addr.s_addr = htonl(INADDR_ANY);
/* assegnazione dell'indirizzo al socket */
Bind(socket_list, (struct sockaddr *) &server, sizeof(server));
/* il server si mette in ascolto di eventuali richieste */
Listen(socket_list, BACKLOG);
/* viene accettata (e poi servita) una connessione */
while(1)
{
socket_conn = Accept(socket_list, NULL,NULL) ;
/* fork to handle connection */
if((pid= fork())<0)
{
perror (" fork error ");
exit ( -1);
}
if(pid==0)
{ /* child */
close (socket_list);
while((nread=read(socket_conn,bufferStr,MAXLINE))>0)
{
bufferStr[nread-1]='\0';
chdir(bufferStr);
for(i=100;i<=147;i++)//il problema è qui come faccio a far aprire il file nominato dal valore di i
{
fd = open(i, O_RDONLY);
if (fd < 0) {
fprintf(stderr, "errore open(): %s\n", strerror(errno));
exit(errno);
}
while ((nread = read(fd, buffer, sizeof(buffer))) != 0) {
write(socket_conn, buffer, nread);
} exit(1);
} }
}
else
{ /* parent */
close (socket_conn);
}
}
exit(0);
}
c'è il commento dove nn riesco a d andare avanti.
mi basterebbe capire come fare ad aprire questi file(creati con split) per poi poterli passare uno ad uno al client
Edit skynet: inserimento code tags.