Chinaunix首页 | 论坛 | 博客
  • 博客访问: 537855
  • 博文数量: 56
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 2255
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-18 20:14
文章分类

全部博文(56)

文章存档

2011年(1)

2009年(6)

2008年(49)

我的朋友

分类: 项目管理

2008-05-30 10:56:06

/*timeclnt.c -a client for timeserv.c
* usage:timeclnt hostname portnumber
*/

#include
#include
#include
#include
#include

#define oops(msg) {perror(msg);exit(1);}

main(int ac,char *av[])
{
struct sockaddr_in servadd; /*the number to call*/
struct hostent *hp; /*used to get number*/
int sock_id,sock_fd; /*the socket and fd*/
char message[BUFSIZ]; /*TO RECEIVE MESSAGE*/
int messlen; /*for message length*/

/*
*step 1:get a socket
*/

sock_id=socket(AF_INET,SOCK_STREAM,0);
if(sock_id==-1)
oops("socket");

/*
*step 2:connect to server
*need to build address (host,port) of server first
*/

bzero(&servadd,sizeof(servadd)); /*zero the address*/

hp=gethostbyname(av[1]); /*lookup hosts ip #*/
if(hp==NULL)
oops(av[1]); /*or die*/

bcopy(hp->h_addr,(struct sockaddr *)&servadd.sin_addr,hp->h_length);

servadd.sin_port=htons(atoi(av[2])); /*fill in port number*/
servadd.sin_family=AF_INET; /*fill in socket type*/

if(connect(sock_id,(struct sockaddr *)&servadd,sizeof(servadd))!=0)
oops("connect");

/*
*step 3:transfer data from server,then hangup
*

messlen=read(sock_id,message,BUFSIZ); /*read stuff*/
if(messlen==-1)
oops("read");
if(write(1,message,messlen)!=messlen) /*and write to*/
oops("write"); /*stdout*/
close(sock_id);





}



阅读(703) | 评论(0) | 转发(0) |
0

上一篇:[转载]makefile规则

下一篇:timeserv

给主人留下些什么吧!~~