专职C++

不能停止的脚步

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

常用链接

留言簿(28)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

vi能用后,我就把我的unix网络编程第1卷翻出来了。书发黄了...
书翻到第4页,有一个取时间的例子,就拿它开发,写复习的第一个例子。
 1#include <stdio.h>
 2#include <sys/socket.h>
 3#include <sys/types.h>
 4#include <netinet/in.h>
 5#include <arpa/inet.h>
 6#include <string.h>
 7#define BUFFER_SIZE 1024
 8typedef struct sockaddr SA;
 9void printarg(int argc, char * argv[])
10{
11    int i;
12    for(i = 0; i < argc; i++)
13    {
14        printf("arg[%d]=%s\n",i,argv[i]);
15    }

16}

17void test(int argc, char * argv[])
18{
19    int sockfd,n;
20    char recvline[BUFFER_SIZE+1];
21    struct sockaddr_in servaddr;
22    if( argc != 2 )
23    {
24        printf("usage: a.out <IPaddress> \n");
25        return;
26    }

27    sockfd = socket(AF_INET, SOCK_STREAM, 0);
28    if( sockfd < 0 )
29    {
30        printf("socket errro\n");
31        return;
32    }

33    memset(recvline,0,sizeof(recvline));
34    memset(&servaddr,0,sizeof(servaddr));
35    servaddr.sin_family = AF_INET;
36    servaddr.sin_port = htons(13);
37    if( inet_pton(AF_INET,argv[1],&servaddr.sin_addr) <= 0 )
38    {
39        printf("inet_pton error %s", argv[1]);
40        return;
41    }

42    if( connect(sockfd,(SA *)&servaddr,sizeof(servaddr)) < 0 )
43    {
44        printf("connect error");
45        return;
46    }

47    while( (n = read(sockfd,recvline,BUFFER_SIZE) ) > 0)
48    {
49        recvline[n] = 0;
50        printf("recived: %s",recvline);
51    }

52    if( n < 0 )
53    {
54        printf("read error");
55        return;
56    }

57}

58int main(int argc, char * argv[])
59{
60    printarg(argc,argv);
61    test(argc,argv);
62    
63    return 0;
64}

65
66
然后输入命令:gcc gettime.c -o a
一时间找不到时间,想起XP的一个internet时间同步配置,找到一个可以用的time.nist.gov
用ping命令得到其IP地址为192.43.244.18
然后运行例子:./a 192.43.244.18
运行结果如下图:
posted on 2010-12-09 00:08 冬瓜 阅读(2195) 评论(0)  编辑 收藏 引用 所属分类: 原创

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理