LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 981|回复: 0

为什么程序不显示我设置的tcp地址??

[复制链接]
发表于 2003-3-13 11:03:23 | 显示全部楼层 |阅读模式
小弟编写了一个很简单的程序对ip地址进行设置,但是执行时却没有任何显示,现把源程序贴出来,大家帮我看看

inetaton.cpp:
-------------------------------------------------------
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

//This function is used to report error
//and return shell
static void
bail(const char *on_what)
{
        fputs(on_what, stderr);
        fputc('\n', stderr);
        exit(1);
}

int main(int argc, char **argv)
{
        int z;                                       
        struct sockaddr_in adr_inet;                //AF_INET
        int len_inet;                                //length
        int sck_inet;                                //socket API

        //create socket API
        sck_inet = socket(AF_INET, SOCK_STREAM, 0);

        if(sck_inet == -1)
        {
                bail("socket()");
        }

        //create address
        memset(&adr_inet, 0, sizeof adr_inet);

        adr_inet.sin_family = AF_INET;
        adr_inet.sin_port = htons(9000);

        if(!inet_aton("127.0.0.23", &adr_inet.sin_addr))
        {
                bail("bad address");
        }

        len_inet = sizeof adr_inet;

        //bind the address to the socket API
        z= bind(sck_inet,
                (struct sockaddr*)&adr_inet,
                len_inet);

        if(z == -1)
        {
                bail("bind()");
        }

        //display the socket API address
        system("netstat -pa --tcp 2>/dev/null| grep a.out");

        close(sck_inet);

        return 0;
}
--------------------------------------------------------
编译过程
$ g++ inetaton.cpp
执行:
$ ./a.out

结果:
没有任何显示。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表