ورود

View Full Version : C++ Socket



aloneinc
چهارشنبه 27 تیر 1386, 13:09 عصر
با یاد او
با سلام

این کد مربوط به سوکت 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,sizeof(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;
}

sepahan
پنج شنبه 28 تیر 1386, 22:30 عصر
salam age lotfan dar zamene LPT programing ya barname nevisi port COM to C ya Delphi hasi kar karde komakam konid
email:behrouzfarhang@gmail.com

a.saghafi
یک شنبه 25 شهریور 1386, 10:00 صبح
سلام این کدی که شما دارید برای سیستم عامل unix است این کدی که برای شما می گذارم با VC کامپایل می شود فقط باید ws2_32.lib را به پروژه اضافه کنید.