PDA

View Full Version : programmazione in C


teo_smile89
25-08-2010, 16:14
Ciao, sto facendo un'architettura client/server per il servizio daytime ed ho un piccolo problemino di compilazione. Quando vado a compilare il file che riguarda il server mi appare questo errore:

/tmp/cc0Q8btP.o: In function `main':
Server-progetto.c:(.text+0xd4): undefined reference to `bild'
collect2: ld returned 1 exit status

Non so veramente che significhi, spero possiate aiutarmi, grazie!
Questo č il codice:

#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <unistd.h>
#include <netdb.h>
#include <time.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#define BACKLOG 10

int main (int argc, const char * argv[]){
int list_fd, conn_fd;
struct sockaddr_in serv_add, client;
char buffer[80];
socklen_t len;
pid_t pid;
time_t timeval;
int logging = 0;

if ((list_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
perror("Socket creation error");
exit(-1);
}

memset ((void *)&serv_add, 0, sizeof(serv_add));
serv_add.sin_family = AF_INET;
serv_add.sin_port = htons(13);
serv_add.sin_addr.s_addr = htonl (INADDR_ANY);

if (bild (list_fd, (struct sockaddr *)&serv_add, sizeof(serv_add)) < 0) {
perror("bind error");
exit(-1);
}

if(listen(list_fd, BACKLOG) <0){
perror("listen error");
exit(-1);
}

while(1) {
len = sizeof(client);
if ((conn_fd = accept (list_fd, (struct sockaddr *)&client, &len)) < 0 ) {
perror ("accept error");
exit(-1);
}

if ((pid = fork()) < 0 ) {
perror("fork error");
exit(-1);
}

if (pid == 0) {
close (list_fd);
timeval = time(NULL);
snprintf(buffer, sizeof(buffer), "%24s\r\n", ctime(&timeval));
if ((write (conn_fd, buffer, strlen(buffer))) < 0 ) {
perror("write error");
exit(-1);
}
if (logging) {
inet_ntop(AF_INET, &client.sin_addr, buffer, sizeof(buffer));
printf("Request from host %s, port %d\n", buffer, ntohs(client.sin_port));
}
close (conn_fd);
exit(0);
}
else {
close(conn_fd);
}
}
exit(0);
}

tuccio`
25-08-2010, 16:37
che hai scritto bild invece di bind :E

if (bild (list_fd, (struct sockaddr *)&serv_add, sizeof(serv_add)) < 0) {

teo_smile89
25-08-2010, 16:44
grazie mille, non mi ero accorto minimamente! :)
ciao e grazie ancora! ;)

cionci
25-08-2010, 17:13
La prossima volta pensa ad un titolo pių esplicativo, ad utilizzare il formato del titolo previsto dal regolamento di sezione e ad utilizzare il tag CODE per indentare il codice ;)