LinuxSir.cn,穿越时空的Linuxsir!

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

请教,这个例子为什么没有输出?

[复制链接]
发表于 2006-1-12 15:58:28 | 显示全部楼层 |阅读模式
[PHP]
/* inetaddr.c
*
* 函数inet_addr(3)使用示例
*/
#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>

/*
* 本函数用于报错
* 返回到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;                                                                                                /*长度*/
        int sck_inet;                                                                                                /*套接口*/
       
        /*生成套接口*/
        sck_inet=socket(AF_INET,SOCK_STREAM,0);
       
        if (sck_inet==-1)
                bail("socket()");
       
        /*建立套接口地址*/
        memset(&adr_inet,0,sizeof adr_inet);
       
        adr_inet.sin_family=AF_INET;
        adr_inet.sin_port=htons(9000);
       
        adr_inet.sin_addr.s_addr=inet_addr("127.0.0.95");
       
       
        if (adr_inet.sin_addr.s_addr==INADDR_NONE)
                bail("bad address");
       
        len_inet=sizeof adr_inet;
       
        /*将地址绑定至接口*/
  z=bind(sck_inet,
  (struct sockaddr *)&adr_inet,
  len_inet);
  
  if (z==-1)
          bail("bind()");
  
  /*显示套接口地址*/
  system("netstat -pa --tcp 2>/dev/null"
  "| grep inetaddr");
  
  return 0;
       
        }

[/PHP]
发表于 2006-1-12 16:38:06 | 显示全部楼层
加一个listen就有了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-12 17:14:21 | 显示全部楼层
请问listen加在那里?
能否指出?
我是linux c初学者.谢谢
回复 支持 反对

使用道具 举报

发表于 2006-1-12 17:45:10 | 显示全部楼层
[PHP]#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>


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;         
  int sck_inet;
   

  sck_inet=socket(AF_INET,SOCK_STREAM,0);
   
  if (sck_inet==-1)
        bail("socket()");
   
  memset(&adr_inet,0,sizeof adr_inet);
   
  adr_inet.sin_family=AF_INET;
  adr_inet.sin_port=htons(9000);
   
  adr_inet.sin_addr.s_addr=inet_addr("127.0.0.95");
   
   
  if (adr_inet.sin_addr.s_addr==INADDR_NONE)
        bail("bad address");
   
  len_inet=sizeof adr_inet;
   

  z=bind(sck_inet,
                 (struct sockaddr *)&adr_inet,
                 len_inet);
  
  if (z==-1)
        bail("bind()");

  if (listen (sck_inet, 5) < 0){
        perror ("listen");
        exit (1);
  }

  system("netstat -pa --tcp 2>/dev/null"
                 "| grep inetaddr");
  
  return 0;
   
}
[/PHP]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-12 17:54:46 | 显示全部楼层
谢谢您了.
......
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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