免费注册 查看新帖 |

Chinaunix

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

socket问题:linux系统上不能访问echo服务 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-04-01 20:12 |只看该作者 |倒序浏览
我的redhat7.2上已经启动echo的udp服务,通过netstat也已经看到,但是如何才能验证呢?比如我用telnet 127。0。0。1 7,系统提示连接拒绝,这里的7指的是tcp的7号端口?我用程序访问也不行,下面是代码,郁闷:
【/quote
#include        "unp.h"

int
main(int argc, char **argv)
{
        int                     sockfd, n;
        char                    recvline[MAXLINE + 1];
        char                    sendline[MAXLINE +1 ];
        socklen_t               salen;
        struct in_addr inaddr;            
        struct sockaddr_in servaddr;
        struct hostent *he;
        int addrlen=0;
        if ( ( he = gethostbyname( "127.0.0.1" ) ) == NULL )
        {
                perror( "gethostbyname" );
                exit( 1 );
        }
        addrlen = sizeof ( struct sockaddr );
        bzero( &servaddr,sizeof( servaddr ) );
        servaddr.sin_family = AF_INET;
        servaddr.sin_port = htons( 7 );
        servaddr.sin_addr = *( ( struct in_addr *) he ->; h_addr );
       
        if ( ( sockfd = socket( AF_INET,SOCK_DGRAM,0 ) ) == -1 )
        {
                perror( "socket" );
                exit( 1 );
        }
        printf( "sockfd = %d \n",sockfd );     
        printf("IP =%s, Port = %d\n", inet_ntoa(servaddr.sin_addr), ntohs(servaddr.sin_port));
        strncpy(sendline,"123456",6);
        if ( sendto ( sockfd, sendline, sizeof( sendline ), 0, ( struct sockaddr* )&servaddr, addrlen ) == -1 )
        {
                perror("sendto";
                exit(1);
        }
       
        n = recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL);
        recvline[n] = 0;        /* null terminate */
        printf("recvline is:%s\n",recvline);

        exit(0);
}
/quote]
谢谢!

论坛徽章:
0
2 [报告]
发表于 2004-04-02 00:05 |只看该作者

socket问题:linux系统上不能访问echo服务

You didn't setup up xinetd/inetd's access permission control properly

论坛徽章:
0
3 [报告]
发表于 2004-04-02 01:49 |只看该作者

socket问题:linux系统上不能访问echo服务

sorry,I can't understand what you said

论坛徽章:
0
4 [报告]
发表于 2004-04-02 13:17 |只看该作者

socket问题:linux系统上不能访问echo服务

telnet肯定不行,因为它用的是TCP协议

程序不行是什么意思?把错误贴上来
rcvline[n]=0 //不知道0是否代表字符串结束符,通常都用'\0'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP