linuc c网络
2016-01-18 11:27
351 查看
linuc c网络
套接字相关的数据类型:
struct sockaddr
{
unsigned shor int sa_family;
char sa_data[14];
};
sa_family:指定通信的地址类型。如果是TCP/IP通信,则改制时AF_INET
sa_data:最多使用14个字符长度,用来保存IP地址和端口信息
struct socketaddr_in
{
unsigned short int sin_family;
uint16_t sin_port;
struct in_addr sin_addr;
unsigned char sin_zero[8];
};
这个结构体的成员作用如下所示。
sin_family: 与sockaddr结构体中的sa_family相同、
sin_port: 套接字使用的端口号
sin_addr:需要访问的IP地址
sin_zero:未使用的字段,填充为0
在这一结构体中,in_addr也是一个结构体,作用时用来保存一个IP地址
struct in_addr
{
uint32_t s_addr;
};
函数定义:struct hostent *gethostbyname(const char * name);
函数说明:name是一个表示域名的字符串。函数会把这个域名转换成一个结构体返回。
在域名解析时,可能没有这个域名或域名服务器发生错误。可能返回错误信息,可以用h_error来捕
捉错误编号。
struct hostent
{
char *h_name; //正式的主机名
char **h_aliases; //这个主机的别名
int h_addrtype; //主机名的类型
int h_length; //地址的长度
char **h_addr_list; //从域名服务器取得的主机的地址
}
什么是网络编程
网络编程的基本概念:套接字=传输协议+端口号+IP地址套接字相关的数据类型:
struct sockaddr
{
unsigned shor int sa_family;
char sa_data[14];
};
sa_family:指定通信的地址类型。如果是TCP/IP通信,则改制时AF_INET
sa_data:最多使用14个字符长度,用来保存IP地址和端口信息
struct socketaddr_in
{
unsigned short int sin_family;
uint16_t sin_port;
struct in_addr sin_addr;
unsigned char sin_zero[8];
};
这个结构体的成员作用如下所示。
sin_family: 与sockaddr结构体中的sa_family相同、
sin_port: 套接字使用的端口号
sin_addr:需要访问的IP地址
sin_zero:未使用的字段,填充为0
在这一结构体中,in_addr也是一个结构体,作用时用来保存一个IP地址
struct in_addr
{
uint32_t s_addr;
};
域名和IP地址
gethostbyname:用域名取得主机的IP地址:
头文件:sys/socket.h netdb.h函数定义:struct hostent *gethostbyname(const char * name);
函数说明:name是一个表示域名的字符串。函数会把这个域名转换成一个结构体返回。
在域名解析时,可能没有这个域名或域名服务器发生错误。可能返回错误信息,可以用h_error来捕
捉错误编号。
struct hostent
{
char *h_name; //正式的主机名
char **h_aliases; //这个主机的别名
int h_addrtype; //主机名的类型
int h_length; //地址的长度
char **h_addr_list; //从域名服务器取得的主机的地址
}
相关文章推荐
- 圆桌问题【二分图多重匹配】网络流24题
- 深度学习与计算机视觉系列(9)_串一串神经网络之动手实现小例子
- 深度学习与计算机视觉系列(8)_神经网络训练与注意点
- 陈海泉:SDN/NFV 2.0 架构的网络技术实践
- 网络安全-跨站脚本攻击XSS(Cross-Site Scripting)
- python网络爬虫知识点
- 使用HttpURLConnection向服务器发送post和get请求
- android开源框架android-async-http使用
- 感谢“http://it.oyksoft.com/” 关于安装yum 于redhatEL4上的办法
- Xcode7 网络请求报错:The resource could not be loaded be
- Tinyhttpd轻量型Http Server
- 程序员的自我修养——计算机网络篇
- HTTP协议中PUT和POST使用区别
- iOS安全系列之一:HTTPS
- Android 网络框架学习之Retrofit,androidretrofit
- https双向认证(基于程序访问,j2ee和android上皆可用)
- linux下使用libmodbus库实现modbusTCP与modbusRTU功能
- 配置https双向认证过程实战(tomcat和浏览器交互)
- vmware下centos克隆功能对网络的设置
- vmware下centos克隆功能对网络的设置