Chinaunix

标题: socket编程的客户端问题 [打印本页]

作者: zidane2007    时间: 2008-04-24 14:09
标题: socket编程的客户端问题
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>

#define MAX_LINE 4096

int main(int argc,char* argv[])
{
        int socketfd,n;
        char recline[MAX_LINE+1];
        struct sockaddr_in servaddr;

        if(argc !=2)
        {
                perror("useage:<ipaddress>");
                exit(1);
        }

        if((socketfd = socket(AF_INET,SOCK_STREAM,0))<0)
        {
                perror("socket error!\n");
                exit(1);
        }

        bzero(&servaddr,sizeof(servaddr));
        servaddr.sin_family=AF_INET;
        servaddr.sin_port=htons(13);

        if(inet_pton(AF_INET,argv[1],&servaddr.sin_addr)<0)
        {
                printf("inet_pton error in%s\n",argv[1]);
                exit(1);
        }

        if(connect(socketfd,(struct sockaddr*)&servaddr,sizeof(servaddr))<0)
        {
                perror("error in connect!\n");
                exit(1);
        }

        while(n = recv(socketfd,recline,MAX_LINE,0) >0)
        {
                recline[n]='\0';
                if(fputs(recline,stdout)==EOF)
                {
                        perror("fputs error!\n");
                        exit(1);
                }
        }

        if(n<0)
        {
                perror("recv error!\n");
                exit(1);
        }

        exit(0);

}

ping  shou.com
得到的ip地址是218.5.79.226
然后我在shell下输入./simple  218.5.79.226

结果是:
error in connect!
: Connection refused

请问大家这是什么问题?
作者: Fixend    时间: 2008-04-24 14:38
那是服务器端的问题。
作者: zhjufe    时间: 2008-04-24 16:33
htons(13);//??
换成21说不定还可以
作者: zhuhefang2006    时间: 2008-04-24 21:55
说明218.5.79.226并没有在13号端口监听吧
作者: zidane2007    时间: 2008-04-25 13:51
我看书上说  13号端口是标准时间端口啊
访问这个端口都可以得到系统时间

随后我有用   127.0.0.1这个端口试过,还是connect不上?
新手,企盼大家多多帮助!
作者: @sky    时间: 2008-04-25 14:31
晕, 你的自己写一个,一般那个端口是不开的




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2