地址格式:

函数bind和getsockname使用通用数据类型:struct sockaddr*来指向socket地址。

#incude <sys/socket.h>

struct sockaddr {
short int sa_family,
char sa_data[]
}

sa_family 指的是地址格式,

sa_data[14] 则是真正的地址内容。地址数据和格式挂钩的,什么样的格式对应什么样的内容。长度也依赖于格式,所以有可能大于14个字节。这里给出的14是任意的。。。。

以AF_开头的符号名指定了地址格式,而PF_开头的符号名指定了相应的命名空间。

AF_LOCAL

  LOCAL指明了是本地地址,使用的是本地命名空间(PF_LOCAL)。

AF_UNIX

  等同于AF_LOCAL。尽管AF_LOCAL被POSIX.1g强制要求,事实上AF_UNIX更具移植性。

AF_FILE

  AF_LOCAL的另一个近义词

AF_INET

  指明了地址位于Internet命名空间之下。PF_INET为其命名空间。

AF_INET6

  与AF_INET相似,特指IPv6协议,命名空间为PF_INET6。

AF_UNSPEC

  指明不使用特定的地址格式,很少情况下用这种地址格式。命名空间为PF_UNSPEC(只是为了完整性,才整出这么一个命名空间。

为socket设置地址:

  通过bind函数将地址绑定给某个socket。

#include <sys/socket.h>
int bind (int socket, struct sockaddr *addr, socklen_t length)

读取socket地址:

  使用函数getsockname 来检查Internet socket的地址。

#include <sys/scoket.h>
int getsockname (int socket, struct sockaddr *addr, socklen_t *length-ptr)

地址和地址长度通过*addr和*length-ptr返回。通常来讲,我们针对命名空间使用合适的数据类型申请空间来存放地址,然后将其强制转化为sockaddr *类型。

SOCKET 地址的更多相关文章

  1. Linux网络编程-----Socket地址API

    (1) 通用socket地址 socket网络编程接口中表示socket地址的是结构体sockaddr,其定义如下: #include<bits/socket.h> struct sock ...

  2. 2. socket结构体——表示socket地址

    一.两种通用socket结构体 1. sockaddr struct sockaddr { sa_family_t sa_family; // 地址族 char sa_data[14]; // 存放s ...

  3. JAVA Socket地址绑定

    Socket常用有惨构造方法有如下: Socket(InetAddress address, int port) Socket(InetAddress address, int port, InetA ...

  4. 010-1 Socket地址族AddressFamily

    AddressFamily地址组成员 成员名称 说明 AppleTalk AppleTalk 地址. Atm 本机 ATM 服务地址. Banyan Banyan 地址. Ccitt 对于 CCITT ...

  5. UNIX网络编程——socket概述和字节序、地址转换函数

    一.什么是socket socket可以看成是用户进程与内核网络协议栈的编程接口.socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信. socket API是一层抽象的网络 ...

  6. socket概述和字节序、地址转换函数

    一.什么是socket socket可以看成是用户进程与内核网络协议栈的编程接口. socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信. socket API是一层抽象的网 ...

  7. 转:sock_ev——linux平台socket事件框架(uri地址的解析) .

    在第一篇中,已经说明,传递的socket地址采取以下形式: [cpp] view plaincopyprint?stream://192.168.2.10:8080   dgram://192.168 ...

  8. Linux Socket 原始套接字编程

    对于linux网络编程来说,可以简单的分为标准套接字编程和原始套接字编程,标准套接字主要就是应用层数据的传输,原始套接字则是可以获得不止是应用层的其他层不同协议的数据.与标准套接字相区别的主要是要开发 ...

  9. Linux下的C Socket编程 -- 简介与client端的处理

    Linux下的C Socket编程(一) 介绍 Socket是进程间通信的方式之一,是进程间的通信.这里说的进程并不一定是在同一台机器上也有可能是通过网络连接的不同机器上.只要他们之间建立起了sock ...

随机推荐

  1. GUI创建各常用控件(二)

    继续接着上一篇! 在我看来有一点需要申明:由于是GUI的相关知识,所以我只是在复习中粗略的总结而已,因此参考价值可能有限,更多的是当作自己学习的一个记录以及便于自己查阅. 好啦!干货继续: 1.类似于 ...

  2. 百度富文本编辑器UEditor安装配置全过程

    网站开发时富文本编辑器是必不可少的,他可以让用户自行编辑内容的样式然后上传到后台!下面我们来介绍如何安装使用百度富文本编辑器 一.下载并且设置百度富文本编辑器的样式     你可以去百度UEditor ...

  3. android网络判断

    //ConnectivityManager管理网络连接相关的操作 ConnectivityManager connectivityManager = (ConnectivityManager) con ...

  4. NSBundle 的使用

    NSBundle 读取图片 plist text NSBundle *mainbundle=[NSBundle mainBundle]; //使mainBundle 对象获取图片的路径 NSStrin ...

  5. Exceeded maximum number of retries. Exceeded max scheduling attempts 3 for instance 7d90eb80-29e2-4238-b658-ade407ff9456. Last exception: [u'Traceback (most recent call last):\n', u' File "/usr/lib/py

    Exceeded maximum number of retries. Exceeded max scheduling attempts 3 for instance 7d90eb80-29e2-42 ...

  6. Microsoft Dynamics AX 2012 X++ Editor Extensions

    Microsoft Dynamics AX 2012 X++ Editor Extensions Initial version of this project is based on the MSD ...

  7. 备份/恢复SQLSERVER数据库,SQL一步实现

      --备份SQL SERVER数据库 BACKUP DATABASE book09 TO DISK ='c:\abc.bak' WITH init --恢复SQL SERVER数据库USE MAST ...

  8. 六、Struts2的配置文件

    六.Struts2的配置文件 1.default.properties:在struts2-core-**.jar的org.apache.struts包中 关于Struts2一些常量配置(框架内部) s ...

  9. 一个完整的菜谱客户端(android源码)(有独立后台)

    该源码是自己写的,是一个完整的菜谱类客户端.功能简单比较简单,界面比较丑,自己乱拼接的,只为学习用.功能相对完整,数据来自独立后台,通过http协议获取,全部来自真实数据.代码里面有获取数据的相应ur ...

  10. 网络基础知识、ASP.NET 核心知识(1)*

    为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...