参考书籍:

《TCP/IP详解,卷1:协议》

《TCP/IP详解 卷2:实现》

《计算机网络第五版》谢希仁

《unix网络编程》


1. 错误提示:

a) Connection refused :连接被拒绝

2. Socket 通信常用的头文件
a) Sys/socket.h :
i. sockaddr 结构: struct sockaddr是通用的套接字地址 是linux 网络通信的地址结构体的一种,其定义如下:
struct sockaddr
{
unsigned short sa_family ; /* address family*/
Char sa_data[14] ; /*up to 14 bytes of direct address */
} ;
说明:
Sa_family : 是地址家族,也成作,协议族,一般都是"AF_XXX"的形式,常用的有
AF_INET Arpa(TCP/IP) 网络通信协议
AF_UNIX UNIX 域协议(文件系统套接字)
AF_ISO ISO标准协议
AF_NS 施乐网络体统协议
AF_IPX Novell IPX 协议
AF_APPLETALK Appletalk DDS

Sa_data: 是14字节的协议地址


B) netinet/in.h :
struct socketaddr_in : struct sockaddr是通用的套接字地址,而struct sockaddr_in则是internet环境下套接字的地址形式,二者长度一样,都是16个字节。二者是并列结构,指向sockaddr_in结构的指针也可以指向sockaddr。一般情况下,需要把sockaddr_in结构强制转换成sockaddr结构再传入系统调用函数中。
定义如下:
Struct sockaddr_in
{
__SOCKADDR_COMMN ( sin_ );
in_port_t sin_port ; /* prot number . */
Struct in_addr sin_addr ; /* Internet address . */
/* Pad to size of 'struct sockaddr' . */
Unsigned char sin_zero[sizeof ( struct sockaddr ) - __SOCKADDR_COMMON_SIZE - sizeof ( in_port_t ) - sizeof( struct in_addr )];

};


C) sys/un.h :
Struct socketaddr_un : 真对UNIX域套接字地址, struct sockaddr是通用的套接字地址,而struct sockaddr_un则是UNIX环境下套接字的地址形式,一般情况下,需要把sockaddr_un结构强制转换成sockaddr结构再传入系统调用函数中。

结构定义如下:
Struct socketaddr_un
{
_SOCKADDR_COMMON(sun_); // __SOCKADDR_COMMON(sun_) 宏定义对应的定义为 sa_family_t sun_family
Char sun_path[108];

};


结束语:

想来你是要进行网络编程,使用socket, listen, bind等函数。你只要记住,填值的时候使用sockaddr_in结构,而作为函数的参数传入的时候转换成sockaddr结构就行了,毕竟都是16个字符长。

更多相关文章

  1. CentOS 7下配置IP地址
  2. linux目录结构详细介绍
  3. 如果后台的SVN服务器IP地址更改了,如何修改客户端的连接url呢?
  4. Linux内核数据结构之链表
  5. Linux 下串口编程之三 termios结构体介绍
  6. Linux 修改ip地址
  7. linux配置虚拟IP地址方法
  8. 使用.NetCore在Linux上写TCP listen 重启后无法绑定地址
  9. Linux系统下用C语言获取MAC地址

随机推荐

  1. 我使用过的 控件的一些特性(layout_weight
  2. 2011.09.21——— android 动态壁纸开发
  3. RubyMotion 3发布,支持Android和WatchKit
  4. Android访问本地服务器(localhost)的解决方
  5. Android开发 Handler+ExecutorService(线
  6. Android中修改系统时间的几种方式
  7. Android之DiskLruCache(缓存工具)
  8. Android客户端向服务器端传值——登录实
  9. android开发随记 - Google Map
  10. windows下Qt5.1 for android开发环境配置