linux应用开发-Socket

来源:互联网 发布:vr视频剪辑制作软件 编辑:程序博客网 时间:2024/05/19 20:41
linux应用开发-Socket
一 Socket
socket是独立于具体协议的网络编程接口
在osi模型中,主要位于会话层和传输层之间
特点
1 是一个编程接口
2 是一种特殊的文件描述符
3 并不仅限于TCP和IP
4 面向连接和无连接的两种方式

二 socket类型
常用
SOCK_STREAM:按照顺序,可靠的,数据完整,基于字节流,使用TCP传输,使用最多的
SOCK_DGRAM:无连接,固定长度,不可靠,基于UDP传输
不常用
SOCK_SEQPACKET,SOCK_RAW,SOCK_RDM

三 字节序

概念:字节序是指多字节数据在计算机内存中储存或者网络传输时个字节的传输顺序

分类:主机序和网络序

常见字节序:
Little endian 低字节储存在起始地址
BIg endian 高字节储存在起始地址

字节序转换

不同主机的字节序不同,为了统一,引入了网络字节序(大端模式)


主机->网络
u_long ntohl(u_long hostlong)
u_short htons(u_short short)
host to network long

host to network short


网络->主机
u_long ntohl(u_long hostlong)
u_short ntohs(u_short short)
network to host long
network to host short

四 IP地址转换
1 inet_aton
2 inet_addr
3 inet_ntoa

五 获取DNS
根据域名获取ip地址gethostbyname

详情可以参看linux系统的man手册

六 一个案例

aton


ntoa


gethostbyname



0 0
原创粉丝点击