C实现基本服务器与客户端(三)

2013-11-20 14:17:36 · 作者: · 浏览: 339

 

  connaddr.sin_family=AF_INET;    //使用AF_INET域

  connaddr.sin_addr.s_addr=inet_addr(argv );//确定要链接的地址

  connaddr.sin_port=htons(50002);//要链接的端口号

  connfd=socket(AF_INET,SOCK_STREAM,0);//创建套接字

  len=sizeof(connaddr);//获取地址长度

  connect(connfd,(struct sockaddr*)&connaddr,len);//创建链接

  write(connfd,"Hello !",7);//往服务器写数据

  while(res=read(connfd,buff,BUFSIZ))

  {

  printf("%d\n",res); //显示收到的字节数

  res=read(fileno(stdin),buff,BUFSIZ); //从服务器读取数据

  write(connfd,buff,res);

  }

  close(connfd);//关闭套接字

  exit(0);

  }

  虽然每次服务器,客户端都会给对方发送一个ACK来确认收到,但read函数一般不会读取到,如果某一方发送FIN或RST信号,read都会当作读到文件尾来处理,即返回0;