用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c代码库

Linux中时间客户端代码

2014-06-03 作者: 洋葱码农举报

[c]代码库

/* timeclnt.c - a client for timeserv.c
 *              usage: timeclnt hostname portnumber
 */
#include       <stdio.h>
#include       <sys/types.h>
#include       <sys/socket.h>
#include       <netinet/in.h>
#include       <netdb.h>
 
#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 );    /* get a line   */
    if ( sock_id == -1 )
        oops( "socket" );               /* or fail      */
 
     /*
      * 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 host's 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  */
 
                               /* now dial     */
    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 );   
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...