随笔 - 23  文章 - 0 评论 - 68 
<2007年11月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

广告中国绩效网,注册立刻送10元 广告中国绩效网,注册立刻送10元

常用链接

留言簿(7)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

在网络程序里面我们有时候需要知道端口.IP和服务信息.这个时候我们可以使用以下几个函数 

 int getsockname(int sockfd,struct sockaddr *localaddr,int *addrlen)
 int getpeername(int sockfd,struct sockaddr *peeraddr, int *addrlen)
 struct servent *getservbyname(const char *servname,const char *protoname)
 struct servent *getservbyport(int port,const char *protoname)
 struct servent
        {
                char *s_name;          /* 正式服务名 */
                char **s_aliases;      /* 别名列表 */  
                int s_port;            /* 端口号 */
                char *s_proto;         /* 使用的协议,可以是"udp"或"tcp" */ 
        }

    一般我们很少用这几个函数.对应客户端,当我们要得到连接的端口号时在connect调用成功后使用可得到 系统分配的端口号.对于服务端,我们用INADDR_ANY填充后,为了得到连接的IP我们可以在accept调用成功后 使用而得到IP地址. 

    在网络上有许多的默认端口和服务,比如端口21对ftp80对应WWW.为了得到指定的端口号的服务 我们可以调用第四个函数,相反为了得到端口号可以调用第三个函数.

   
    在/ect/services下面可以查看服务

posted on 2007-10-11 23:06 吴剑 阅读(266) 评论(0)  编辑 收藏 引用 所属分类: 我的技术文摘
只有注册用户登录后才能发表评论。