PDA

View Full Version : مشکل با کامپایل برنامه سرور در لینوکس



one hacker alone
دوشنبه 29 فروردین 1390, 12:47 عصر
با یاد خدا
با سلام
من برای شروع سوکت نویسی با سی در لینوکس مثال های مختلفی اجرا کردم و کلی مقاله گرفتم دست اخر خواستم یکی از مثال های کتاب رو اجرا کنیم اررور داد این برنامه قسمت سرور هست که اگه کلاینت بهش تلنت کنه پیغام .. چاپ میکنه اما متاسفانه خطا میده و کامپایل نمیشه و گیرمیده میگه فلان عنصر رو تعریف نکردی به هدر فایل in.h هم شک دارم میگم شاید ساختارهای اون با این ها نخونه نمیدونم



#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <netinet/in.h>
#define MYPORT 3490
#define BACKLOG 10
main(){

int sockfd,new_fd;
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
int sin_size;
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){
perror("socket");
exit(1);
my_addr.sin_family=AF_INET;
my_addr.sin_port=htons(MYPORT);
my_addr.sin_addr.s_addr=INADDR_ANY;
bzero(&(my_addr.sin_zero),8);
if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1){
perror("Bind");
exit(1);
}
if(listen(sockfd,BACKLOG)==-1){
perror("listen");
exit(1);
}
while(1){
sin_size=sizeof(struct sockaddr_in);
if((new_fd=accept(sockfd,(struct sockaddr *)&their_addr,&sin_size))==-1){
perror("accept");
continue;
}
printf("server:got connection from %s\n",inet_ntoa(their_addr,sin_addr));
if(!fork()){
if(send(new_fd,"Hello,Word!\n",14,0)==-1)
perror("send");
close(new_fd);
exit(0);
}
close(new_fd);
while(waitpid(-1,NULL,WNOHANG)>0);
}
}
}



پیغام خطا


fs.c: In function ‘main’:
fs.c:38:65: error: ‘sin_addr’ undeclared (first use in this function)
fs.c:38:65: note: each undeclared identifier is reported only once for each function it appears in





دوستان اگه مثالی که کار کنه دارن ممنون میشم بزارید تا یکم روش کار کنم سردر بیارم هرچه ساده تر بهتر