免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2655 | 回复: 1
打印 上一主题 下一主题

为什么socket read返回的字节数不对? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-30 15:22 |只看该作者 |倒序浏览
#include "unp.h"
#define MAXPORT 1000
int main(int argc,char **argv){
        int sockfd,i,ret;
        struct sockaddr_in      servaddr;
        char buf[1000];
        if (argc != 2)
                err_quit("usage: a.out <IPaddress>");


        bzero(&servaddr, sizeof(servaddr));
        if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
        err_quit("inet_pton error for %s", argv[1]);
        printf("scan server %s\n",argv[1]);
        for(i=1;i<MAXPORT;i++){

        if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
                err_sys("socket error");
        servaddr.sin_family = AF_INET;
///     printf("conneting to port %d \n",i);

                servaddr.sin_port   = htons(i);
                if (connect(sockfd, (SA *) &servaddr, sizeof(servaddr)) >= 0)
                {
                        printf("the server is %s\n",inet_ntoa(servaddr.sin_addr));
                        printf("port %d is open \n",i);
                        while((ret=read(sockfd,buf,sizeof(buf))>0)){
                                printf("read count : %d\n",ret);
                                printf("banner: \n %s",buf);
                        }
                }

//                      printf("return %d\n",ret);

//

        Close(sockfd);
        }
        exit(0);
}
~
~
~
执行返回值:
[email=sam@sam-desktop:~/unpv13e/example$]sam@sam-desktop:~/unpv13e/example$[/email] ./portscan2 127.0.0.1
scan server 127.0.0.1
the server is 127.0.0.1
port 13 is open
read count : 1
banner:
Fri Nov 30 15:21:34 2007

为什么read count是1.而实际返回的字符数显然不是1?

论坛徽章:
0
2 [报告]
发表于 2007-12-03 10:07 |只看该作者
我顶
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP