您的位置:首页 > Web前端

bind(lisnfd,(struct sockaddr *)&addr,sizeof(addr));

2011-03-15 21:06 337 查看
#include<stdio.h>

#include<sys/socket.h>

#include<netinet/in.h>

#include<arpa/inet.h>

#include<time.h>

#include<errno.h>

int main(int argc,char **argv)

{

  int n,lisnfd,clinfd;

  lisnfd=socket(AF_INET,SOCK_STREAM,0);

  struct sockaddr_in addr;

  addr.sin_family=AF_INET;

  addr.sin_port=htons(83);

  addr.sin_addr.s_addr=htonl(INADDR_ANY);

  bind(lisnfd,(struct sockaddr *)&addr,sizeof(addr));

  listen(lisnfd,5);

  char buffer[5];

  for(;;)

    {

      // int n;                                                                 

      clinfd=accept(lisnfd,(struct sockaddr *)NULL,NULL);

  if(clinfd<0)

        printf("error");

                                             

      while((n=recv(clinfd,buffer,5,0))>0)

      {

        printf("%d /n",n);

        buffer
='/n';                                                

    

        fputs(buffer,stdout);

        printf("/n");

        }

      int k;

      k=send(clinfd,"hellohello",11,0);//recv后接着send,失败

  while(k<0)

    {

      k=send(clinfd,"hellohello",11,0);

      printf("%d /n",k);

}

                                      

      close(clinfd);

    }

}

客户机:

#include<stdio.h>

#include<sys/types.h>

#include<sys/socket.h>

#include<memory.h>

#include<netinet/in.h>

#include<arpa/inet.h>

#include<string.h>

#define MAXSIZE 10

int main(int argc,char **argv)

{

  char buffer[MAXSIZE+1];

  int n,sockfd=socket(AF_INET,SOCK_STREAM,0);

  struct sockaddr_in addr;

  memset(&addr,0,sizeof(struct sockaddr_in));

  addr.sin_family=AF_INET;

  addr.sin_port=htons(83);

  inet_pton(AF_INET,"127.0.0.1",&addr.sin_addr);

  if(connect(sockfd,(struct sockaddr *)&addr,sizeof(struct sockaddr))<0)

    {

      printf("error");

    }

 int y=send(sockfd,"fuck",5,0);

                               

  while((n=recv(sockfd,buffer,MAXSIZE,0))>0)  //send后接着recv,失败

   {

   buffer
='/n';

   fputs(buffer,stdout);

   }

    printf("hahaha/n");

  

       printf("%d /n",y);

        close(sockfd);

  return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息