با یاد او
با سلام
این کد مربوط به سوکت tcp برای سرور هست اما با vc که میام کامپایل کنم ارور میده ،به include هاگیر میده.
ممنون میشم بنده رو تو کامپایل کردن این کد یاری بفرمایید .
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "unistd.h"
#include "errno.h"
#include "string.h"
#include "sys/types.h"
#include "sys/socket.h"
#include "netinet/in.h"
#include "arpa/inet.h"
#include "sys/wait.h"
#include "signal.h"
#define MYPORT 3490
#define BACKLOG 10
void sigchld_handler(int s)
{
while(waitpid(-1,NULL,WNOHANG) > 0 );
}
in main(void)
{
int sockfd, new_fd;
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
socklen_t sin_size;
struct sigaction sa;
int yes=1;
if ((sockfd = socket(PF_INET,SOCK_STREAM,0) == -1 ){
perror("socket");
exit(1);
}
if (setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&yes,si zeof(int) == -1 ){
perror("setsockopt");
exit(1);
}
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(MYPORT);
my_addr.sin_addr.s_addr = INADDR_ANY;
memset(&(my_addr.sin_zero),'\0\',8);
if (bind(struct sockaddr *)&myaddr,sizeof(struct sockaddr) == -1){
perror ("bind");
exit(1);
}
if (listen(sockfd,BACKLOG)== -1 ){
perror("listen");
exit(1);
}
sa.sa_handler = sigchld_handler;
sigemptyse(&sa.sa_mask);
sa.sa_flags = SA_RESTART;
if (sigaction(SIGCHLD, &sa, NULL) == -1){
perror("sigaction");
exit(1);
}
while(1){
sin_size = sizeof(struct sockaddr_in);
if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr,&sin_size)) == -1){
perror("accept");
countinue;
}
printf("server:got connection from %s\n", inet_ntoa(their_addr.sin_addr));
if (!fork()) {
close(sockfd);
if (send(new_fd, "Hello\n",14,0) == -1)
perror("accept");
close(new_fd);
exit(0);
}
close(new_fd);
}
return 0;
}