LINUX网络编程 connect被拒绝

#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h... #include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<stdio.h>
int main(void)
{
int sockfd,n;
char recvline [2046];
struct sockaddr_in servaddr;
if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0)
printf("socket created failure");
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_port=htons(13);
if((n=inet_pton(AF_INET,"202.120.2.101",&servaddr.sin_addr))<=0)
printf("inet_pton error!");
if((n=connect(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr)))<0)
printf("connect error!n valus %d",n);
n=read(sockfd,recvline,2045);
if(n>0)
{
printf("n>0");
recvline[n]=0;
if(fputs(recvline,stdout)==EOF)
printf("fputs error");
}
if(n<0)
printf("read error");
exit(0);
}

这是源代码,很奇怪,那个connect总是失败,返回值为1.
我在命令行里直接ping 这个时间服务器(我网上找的上海交大时间服务器地址)是通的,为什么就是connect不上?我把防火墙都关了的。(我的linux安装在虚拟机里。可以上网。)
返回值是-1
展开
 我来答
苏沐雅tn
2014-08-24 · TA获得超过450个赞
知道小有建树答主
回答量:1209
采纳率:50%
帮助的人:575万
展开全部
一般经过创建套接字socket()绑定bind()以及listen()之后, 就可以调用 accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);判断是否有客户端发起链接请求, 不用accept()改用select()可以吗,select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout) 中哪个参数跟客户端有关?
追问
不好意思啊,我完全没懂你说的什么。
我这个程序就是个客户端程序,是向时间服务器请求时间的一个客户端。
我不需要绑定和监听。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式