当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : tcp/ip卷2第1個例子
帖子发表于 : 2007-03-10 14:25 
头像

注册: 2006-08-12 7:46
帖子: 70
送出感谢: 0 次
接收感谢: 0 次
代码:
/*
 * Send a UDP datagram to the daytime server on some other host.
 *read the reply, and print the time and data on the server.
 */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define BUFFSIZE   150      /* arbitrary size */
int
main()
{
   struct sockaddr_in serv;
   char   buff[BUFFSIZE];
   int      sockfd, n;

   if ((sockfd = socket(PF_INET, SOCK_DGRAM, 0)) < 0)
   {
      printf("socket error");
      exit(-1);
   }

   bzero((char *) &serv, sizeof(serv));
   serv.sin_family = AF_INET;
   serv.sin_addr.s_addr = inet_addr("192.168.1.9");
   serv.sin_port = htons(13);

   if (sendto(sockfd, buff, BUFFSIZE, 0,
               (struct sockaddr *) &serv, sizeof(serv)) != BUFFSIZE)
   {
      printf("sendto error");
      exit(-1);
   }

   if ((n = recvfrom(sockfd, buff, BUFFSIZE, 0,
               (struct sockaddr *) NULL, (int *) NULL)) < 2)
   {
      printf("recvfrom error");
      exit(-1);
   }
   buff[n - 2] = 0;   /*null terminate*/
   printf("%s\n", buff);

   exit(0);
}


我执行的时候等不到结果,还有我觉得buff[n-2] = 0;这里应该是buff[n -2] = '\0';不知道有没高手指点下


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-03-10 15:12 
头像

注册: 2006-12-02 12:25
帖子: 689
送出感谢: 0 次
接收感谢: 0 次
看起来好像是发送给那个server,然后没啥反应了,我把IP地址改为127.0.0.1也没有用,不懂。帮你顶一下。


_________________
Titainium


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译