اطلاعیه

Collapse
No announcement yet.

C++ Socket

Collapse
X
 
  • Filter
  • زمان
  • Show
Clear All
new posts

  • C++ Socket

    با ياد او
    با سلام

    اين كد مربوط به سوكت 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;
    }
    اگر به خواسته ی وجدان عمل کنیم به سوی حقیقت حرکت کردیم و متوجه میشیم چه دینی کامل و چه راهی راه مستقیم هست

  • #2
    لینوکسه...
    سیمرغ بر می گردد مطمئنم

    Comment


    • #3
      از ++Dev C استفاده کن .

      Comment


      • #4
        تو لینوکس یا با cygwin می تونی code های c زو که تحت Linux هستند رو compile کنی ....

        Comment


        • #5
          با ياد او
          با سلام

          متشكر دوستان
          البته من ميخواستمدر اصل بدونم چطور كد روتحت ويندوز كنم ،منظورم include ها هست ...

          نه با استفاده از cgywin

          تشكر
          اگر به خواسته ی وجدان عمل کنیم به سوی حقیقت حرکت کردیم و متوجه میشیم چه دینی کامل و چه راهی راه مستقیم هست

          Comment


          • #6
            هيچي شما برو فايل هاي header سوكت رو براي ويندوز كپي كن
            http://www.stanford.edu/~thathoo/cur...t/usr/include/
            وقتي بري تو آدرس متوجه ميشي اونايي كه ميخواي رو دانلود كن به همون شكلي كه اونجاست بريز تو شاخه هاشون
            مثلا برو تو شاخه sys و socket,h رو دانلود كن به بر تو شاخه bin يك شاخه بساز به اسم sysy كپي كن توش

            Comment


            • #7
              با یاد او
              با سلام

              تشکر دارم بابت عنایتتون اما این که شما میفرمایید header ها رو باید تعویض کرد که کاملا محرض هست دوست من .
              بنده دقیقا مشتاقم در مورد برنامه فوق, تک تک header ها با چه header هایی در ویندوز تطابق دارن.
              در صورتیکه تعدادیش مشخص هست ,مانند :
              کد:
              #include "sys/socket.h"
              که با
              کد:
              #include "winsock.h"
              جایگزین خواهد شد.

              مشتاقم دوستان در مورد جایگزینی بقیه هدرها عنایت بفرمایند .
              متشکر
              اگر به خواسته ی وجدان عمل کنیم به سوی حقیقت حرکت کردیم و متوجه میشیم چه دینی کامل و چه راهی راه مستقیم هست

              Comment


              • #8
                سلام و خسته نباشيد
                از دوستان كسي هست كه اين كد رو واسه linux كامپايل كنه ( gcc ) ?
                =============================================

                اگر كد Client / Server واسه لينكس ،( سوكت ) از دوستان كسي داره ممنون ميشم

                زبان : سي

                و با gcc هم بتونه كامپايل بشه

                تشكر
                ......

                به سلامتي شبگرد ...

                Comment

                Working...
                X