UNIX网络编程上的第一个例子:TCP时间获取客户程序,如何连不上服务器?(可以ping的通)
UNIX网络编程上的第一个例子:TCP时间获取客户程序,怎么连不上服务器?(可以ping的通)
哪位大神能帮帮忙,不甚感激!
注:我使用的是百度的ip地址,连不上服务器,但是可以ping的通。
------解决思路----------------------
百度吧端口封闭了
------解决思路----------------------
说出报错信息。而且书上也说了,很多商用服务器为了方式拒绝服务攻击,是关闭了端口或者隐藏了端口了的。
哪位大神能帮帮忙,不甚感激!
注:我使用的是百度的ip地址,连不上服务器,但是可以ping的通。
#include <stdio.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <errno.h>
#include <strings.h>
#define MAXLINE 4096
int
main(int argc, char **argv)
{
int sockfd, n;
char recvline[MAXLINE + 1];
struct sockaddr_in servaddr;
if (argc != 2)
{
printf("parameter is not enough!\n");
exit(1);
}
if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
printf("socket error!\n");
exit(1);
}
// bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(13); /* daytime server */
/*
if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
{
printf("inet_pton error for %s", argv[1]);
exit(1);
}
*/
servaddr.sin_addr.s_addr = inet_addr(argv[1]);
printf("connect start!\n");
if (connect(sockfd, (struct sockaddr*) &servaddr, sizeof(servaddr)) < 0)
{
printf("connect error\n");
exit(1);
}
printf("connect end!\n");
while ( (n = read(sockfd, recvline, MAXLINE)) > 0) {
recvline[n] = 0; /* null terminate */
if (fputs(recvline, stdout) == EOF)
{
printf("fputs error");
exit(1);
}
}
if (n < 0)
{
printf("read error!\n");
exit(1);
}
exit(0);
}
------解决思路----------------------
百度吧端口封闭了
------解决思路----------------------
说出报错信息。而且书上也说了,很多商用服务器为了方式拒绝服务攻击,是关闭了端口或者隐藏了端口了的。