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 展开
#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 展开
展开全部
一般经过创建套接字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) 中哪个参数跟客户端有关?
追问
不好意思啊,我完全没懂你说的什么。
我这个程序就是个客户端程序,是向时间服务器请求时间的一个客户端。
我不需要绑定和监听。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |