tcp/ip卷2第1個例子

C、C++和Java语言
回复
头像
cho
帖子: 70
注册时间: 2006-08-12 7:46
送出感谢: 0
接收感谢: 0

tcp/ip卷2第1個例子

#1

帖子 cho » 2007-03-10 14:25

代码: 全选

/*
 * 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';不知道有没高手指点下
头像
titainium
帖子: 689
注册时间: 2006-12-02 12:25
送出感谢: 0
接收感谢: 0

#2

帖子 titainium » 2007-03-10 15:12

看起来好像是发送给那个server,然后没啥反应了,我把IP地址改为127.0.0.1也没有用,不懂。帮你顶一下。
Titainium
回复

回到 “C/C++/Java”