也可以用tel
et和
etstat试一试r
上面是一个最简单的网络程序不过是不是也有点烦上面有许多函数我们还没有解释我会在下一章进行的详细的说明r
r
r
七总结r
总的来说网络程序是由两个部分组成的客户端和服务器端它们的建立步骤一般是r
r
服务器端r
socketbi
dliste
acceptr
r
客户端r
socketco
ectr
r
三Li
ux网络编程3服务器和客户机的信息函数r
r
r
这一章我们来学习转换和网络方面的信息函数r
31字节转换函数r
在网络上面有着许多类型的机器这些机器在表示数据的字节顺序是不同的比如i386芯片是低字节在内存地址的低端r
高字节在高端而alpha芯片却相反为了统一起来在Li
ux下面有专门的字节转换函数r
u
sig
edlo
gi
thto
lu
sig
edlo
gi
thostlo
gr
u
sig
edshorti
thto
su
isg
edshorti
thostshortr
u
sig
edlo
gi
t
tohlu
sig
edlo
gi
t
etlo
gr
u
sig
edshorti
t
tohsu
sig
edshorti
t
etshortr
r
在这四个转换函数中h代表host
代表
etworks代表shortl代表lo
gr
第一个函数的意义是将本机器上的lo
g数据转化为网络上的lo
g其他几个函数的意义也差不多r
r
32IP和域名的转换r
在网络上标志一台机器可以用IP或者是用域名那么我们怎么去进行转换呢r
r
structhoste
tgethostby
ameco
stcharhost
amer
structhoste
tgethostbyaddrco
stcharaddri
tle
i
ttyper
在中有structhoste
t的定义r
structhoste
tr
charh_
ame主机的正式名称r
charh_aliases主机的别名r
i
th_addrtype主机的地址类型AF_INETr
i
th_le
gth主机的地址长度对于IP4是4字节32位r
charh_addr_list主机的IP地址列表r
r
defi
eh_addrh_addr_list0主机的第一个IP地址r
r
gethostby
ame可以将机器名如li
uxyessu
com转换为一个结构指针在这个结构里面储存了域名的信息r
gethostbyaddr可以将一个32位的IP地址C0A80001转换为结构指针r
r
这两个函数失败时返回NULL且设置h_err
o错误变量调用h_strerror可以得到详细的出错信息r
r
r
33字符串的IP和32位的IP转换r
在网络上面我们用的IP都是数字加点19216801构成的而在structi
_addr结构中用的是32位的IPr
我们上面那个32位IPC0A80001是的19216801为了转换我们可以使用下面两个函数r
r
i
ti
et_ato
co
stcharcpstructi
_addri
pr
chari
et_
toastructi
_addri
r
r
函数里面a代表ascii
代表
etwork第一个函数表示将abcd的IP转换为32位的IPr
存储在i
p指针里面第二个是将32位IP转换为abcd的格式r
r
r
34服务信息函数r
在网络程序里面我们有时候需要知道端口IP和服务信息这个时候我们r