当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

Socket的地址构造[VC/C++编程]

赞助商链接



  本文“Socket的地址构造[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在成立socket通信的历程中地址起着很关键的作用,在计划TCP/IP网络程序时,必须对 socket 的地址构造有清楚的熟习.

TCP/IP 的地址数据构造.

struct sockaddr {
u_short safamily;/*地址族,AF_XXX*/
char sa_data[14];/*14字节的特定协议地址*/
}

此中14字节的sa_data随协议而差别.在TCP/IP协议族中,地址数据构造为:

struct in_addr{
u_long s_addr;/*32比特的IP地址,网络字节次序 */
};
struct sockaddr_in{
short sin_family; /*AF_INET*/
u_short sin_short; /*16比特的端口号,网络字节次序*/
struct in_addr sin_addr; /*32比特的IP地址,网络字节次序*/
char sin_zero[8]; /*未用*/
}

网络字节次序是TCP/IP中规定好的一种数据表示格局,它与具体的CPU范例、操作系统等无关,从而可以保证数据在差别主机之间传输时可以被精确注释.由主机字节次序转换为网络字节次序的两个函数以下:htons():将16比特的主机字节次序数据转换为网络字节次序htonl():将32比特的主机字节次序数据转换为网络字节次序与此相对应的将网络字节次序转换为主机字节次序的函数为:

ntohs():将16比特的网络字节次序数据转换为主机字节次序ntohl():将32比特的网络字节次序数据转换为主机字节次序由于各种socket地址构造的长度相差很大,TCP/IP地址族的地址长度为8字节,XNS地址为14字节,UNIX地址不定,最长可达110字节,所以无法以一种统一的格局定义它们,需求在bind()调用中明确指定socket地址的长度.

当bind()参数无效或端口已被其他程序所用时,函数返回-1,表明本次socket命名失利.


  以上是“Socket的地址构造[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 操作UDP Socket技术实现IP多点传送详解
  • 基于Socket的Java网络编程集粹
  • 用Java Socket开辟支持上千个并发的小型服务器(下)
  • 用Java Socket开辟支持上千个并发的小型服务器(上)
  • <b>三步学会Java Socket编程</b>
  • 用Java Socket制作广播信使程序
  • Java Socket编程中的一个奥妙类
  • <b>Java网络编程底子(二) Socket类的操纵办法</b>
  • 利用异步输入输出流编写Socket进程通信
  • 操作Socket举行Java网络编程
  • 用Socket类实现HTTP协议客户端操纵
  • Java网络编程底子(四) ServerSocket类操纵
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .