没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
L
in
ux
应
⽤
⽹络编
程
⽹络
通
信
简
介
⽹络
通
信
常
⽤
设
备
与
协
议
T
C
P
协
议
so
cke
t
编
程
接
⼝
so
cke
t
编
程
实
践
本
质
⽹络
通
信
的
分
层
⽹
卡
集
线
器
交
换
机
路
由
器
D
NS
服
务
器
本
质
上
是
位
于两个不
同
计
算
机
的
进
程
间
通
信
分
为七
层
,
分别
是
物
理
层
,
数
据
链
路
层
,
⽹络
层
,
传
输
层
,
会
话
层
,
表
⽰
层
,
应
⽤
层
。
⽹络
通
信
流
程
简
述
⽹络
通
信
是
分
层
的
,
硬
件
层
为
⽹
卡
,
软
件
层
分
为
应
⽤
程
序
部
分
和
操
作
系
统
部
分
。
⽹
卡
由
操
作
系
统
层
的
⽹
卡
驱
动
控
制
与
另
⼀个
⽹
卡
进
⾏
⽹络
通
信
。
操
作
系
统
层对
应
⽤
层
提
供
so
cke
t
接
⼝
作
为
A
P
I
,
供
应
⽤
层
调
⽤
。
⽹络
通
信
的
⽅
式
电
脑
与
电
脑
之
间
并
不
是
直
接
通过
⽹络
连
接
的
,
⽽
是
诸
多
电
脑
组
成
⼀个
局
域
⽹
。
多
个
局
域
⽹组
成
⼀个
更
⼤
的
局
域
⽹
进
⾏
通
信
。
DHC
P
协
议
N
A
T
协
议
CPU
靠
⽹
卡
连
接
外
部
⽹络
设
备
。
⽹
卡
与
CPU
之
间
通过
并
⾏
总
线
连
接
,
⽹
卡
通过
⽹
线
与
外
界
的
⽹络
连
接
是
串
⾏
的
。
集
线
器
就
相
当
于中
继
器
,
将
衰
减
的
⽹络
放
⼤
。
集
线
器
可
以
组
成
局
域
⽹络
,
⽤
⼴
播
的
⽅
式
⼯
作
。
集
线
器
向
所
有
计
算
机
发
送
数
据
包
(
⼴
播
)
,
发
送
的
数
据
包
中
包
含
了
接
收⽅
的
I
P
地址
,
只
有
真
正
的
接
收
端
才
能
接
收
到
信
息
。
集
线
器
不
能
⽤
于
连
接
外
⽹
包
含
集
线
器
的
功
能
,
但
更
⾼
级
。
交
换
机
当
中
有
⼀个
地址
表
,
数
据
包
查
询
地址
表
后
直
达
⽬
标
端
⼝
,
⽽
⾮
⼴
播
。
地址
表
中
记
录
了
每
个
端
⼝
连
接
的
计
算
机
的
I
P
地址
。
交
换
机
第
⼀
次
⼯
作
时
地址
表
为
空
⽩
,
此
时
交
换
机
会
和
集
线
器
⼀
样
进
⾏
⼴
播
,
获
取
相
关
端
⼝
对
应
的
I
P
地址
后
记
录
在地址
表
中
。
路
由
器
简
介
D
NS
服
务
器
功
能
动
态
I
P
地址
分
配
的
实
现
N
A
T
的
作
⽤
⽹
卡
的
作
⽤
速
率
适
配
和
数
据
缓
存
,
⽹
卡
内
部
有
数
据
缓
存
区
,
可
以使
不
同
速
率
的
⽹络
能
够
通
信
⽹
卡
可
以
对
数
据
包
进
⾏
处
理
,
数
据
包
的
⼤
⼩
是
不⼀
定
的
。
⽹络
通
信
就
是
⼀个
数
据
包
⼀个
数
据
包去发
送
,
⽹络
驱
动
将
数
据
流
分
成
多
个
数
据
包
,
⽹
卡
给
数
据
包
补
充
信
息
添
加
包
头
和
包
尾
。
包
头
和
包
围
⽤
于
标
注
信
息
来
源
和
校
验
。
⽹
卡
的
主
要
功
能
就
是
拆
包
和
封
包
。
I
P
地址
分
类
路
由
器
功
能
路
由
器
对
内
(
L
A
N
端
)
管
理
⼦
⽹
,
可
以
设
置
⼦
⽹⽹
段
,
有
线
端
⼝
的
I
P
地址
,
设
置
DHC
P
功
能
等
。
局
域
⽹
的
I
P
地址
是
由
路
由
器
决
定
的
。
路
由
器
的
I
P
地址
也
是
局
域
⽹
的
⼀
部
分
,
路
由
器
也
是
⼦
⽹
的
⼀
部
分
。
路
由
器
是
局
域
⽹
和
外
部
⽹络
通
信
的
出
⼊
⼝
,
即
⽹
关
。
路
由
器
就
是
作
为
⽹
关
的
。
路
由
器
将
整
个
⽹络
划分
为⼀个个
局
域
⽹
,
却⼜
互
相
连
接
。
路
由
器
有
两个
⽹
卡
,
⼀个
对
内
做
⽹
关
,
⼀个
对
外
做
节
点
。
路
由
器
对
外
(
W
A
N
端
)
实
现
联
⽹
,
联
⽹
的
⽅
式
由
外
部
⽹络
决
定
。
这
个
时
候
路
由
器
仅
仅
是
外
部
⽹络
的
⼀个
节
点
。
为
经
过
路
由
器
的
数
据
包
寻
找
⼀
条最
佳
路
径
并
转
发
出
去
。
这
决
定
了
⽹络
的
稳
定
性
和
速
度
。
T
C
P
协
议
的
分
层
与
⽹络
通
信
架构
so
cke
t
服
务
器
程
序
编
写
现
在
I
P
地址
主
要
还
是
⽤
32
位
⼆
进
制
数
表
⽰
(
即
I
PV
4
,
在
⼈
机
交互中
⽤
到
的
I
P
地址
主
要
是
点
分
⼗
进
制
,
即
192.168.
x
.
x
。
I
P
地址
由
两
部
分
构
成
⽹
段
(
⽹络
标
识
)
,
和
主
机
地址
构
成
,
⼦
⽹
掩
码
⽤
于
标
识
哪
⼏
位
是
⽹
段
,
哪
⼏
位
是
主
机
地址
。
⽹
段
相
同
即
同
属
于⼀个
局
域
⽹
。
M
AC
地址
,
即
为
物
理
地址
,
每
⼀个
⽹
卡
都
有
⼀个
固
定
的
物
理
地址
。
D
NS
服
务
器
访
问
流
程
先
访
问
D
NS
服
务
器
的
I
P
地址
(
D
NS
服
务
器
只
有
I
P
地址
没
有
域
名
)
,
然
后
查
询
要
访
问
的
域
名
对
应
的
I
P
地址
,
然
后
再
⽤
该
I
P
地址
访
问
真
正
要
访
问
的
⽹
站
。
浏
览
器
需
要
D
NS
服
务
器
,
QQ
这
样
的
客
⼾
端
不
需
要
,
因
为
QQ
软
件
编
程
时
已
经
知
道
了
腾
讯
服
务
器
的
I
P
地址
,
可
以
直
接
通过
I
P
地址
访
问
。
提
供
域
名
与
I
P
地址
的
转
换
服
务
N
A
T
穿
透
I
P
地址
分
为
公
⽹
(
⽹络
范
围
内
唯
⼀
的
I
P
地址
)
和
私
⽹
(
局
域
⽹
中
的
电
脑
使
⽤
)
。
⽹络
通
信
的
数
据
包
中
包
含
⽬
的
地
的
I
P
地址
,
当
局
域
⽹
中
的
主
机
要
发
送
数
据
包
给
外
⽹
时
,
路
由
器
要
将
数
据
包包
头
中
的
局
域
⽹
内
⽹
I
P
转
化
成
当
前
对
外
的
外
⽹
I
P
,
这
样
你
所
访
问
的
服
务
器
才
能
通过
外
⽹
I
P
,
找
到
当
前
主
机
并
发
送
数
据
包
。
这
个
过
程
就
是
⽹络
地址
转
换
协
议
。
N
A
T
穿
透
⽤
于
点
对
点
的
通
信
。
例
如
迅
雷
,
⼀个
数
据
包
电
脑
A
有
,
⽽
电
脑
B
没
有
。
B
想
要
获
取
这
个
数
据
包
,
但
A
和
B
都
在
内
⽹
I
P
中
,
⽆
法
直
接
彼
此
访
问
,
可
以
都
下
载
迅
雷
客
⼾
端
,
由
迅
雷
的
服
务
器
获
取
双
⽅
的
公
⽹
I
P
,
使
他
们
能
够
直
接
通
信
。
N
A
T
协
议
只
是
I
PV
4
的
补
丁
。
动
态
I
P
地址
分
配
的
优
势
动
态
分
配
由
局
域
⽹
中
的
DHC
P
服
务
器
(
DHC
P
服
务
器
其
实
就
是
路
由
器
中
的
⼀
段
代
码
)
来
实
现
的
。
当
局
域
⽹
中
的
⼀
台
电
脑
想
要
获
取
⼀个
新
的
I
P
地址
时
,
会
向
路
由
器
发
出
请
求
,
路
由
器
根
据
L
A
N
端
设
置
的
⽹
段
,
查
询
I
P
地址
表
选
择
⼀个
空
的
端
⼝
。
I
P
地址
可
以
静
态
分
配
,
也
可
以
动
态
分
配
。
每
⼀个
局
域
⽹
中
的
I
P
地址
不
能
重
复
。
⽅
便
接
⼊
和
断
开
,
有
限
的
I
P
地址
可
以
得
到
充
分利
⽤
。
对
于
T
C
P
的
理
解
重
点
TCP
协
议
如
何
保
证
可
靠
传
输
T
C
P
的
3
次
握
⼿
和
四
次
挥
⼿
T
C
P
与
H
TTP
T
C
P
协
议
的
分
层
⽹络
通
信
架构
分
为
应
⽤
层
,
传
输
层
,
国
际
互
连
层
,
⽹络
接
⼊
层
。
关
注
应
⽤
层
,
了
解
传
输
层
即
可
B
S
架构
,
即
浏
览
器
服
务
器
架构
C
S
架构
,
即
客
⼾
端
服
务
器
架构
服
务
器
只
有
⼀个
,
客
⼾
端
有
多
个
。
客
⼾
端
通过
与
服
务
器
联
⽹
与
服
务
器
通
信
。
例
如
QQ
和
⽹
盘
。
浏
览
器
相
当
于
将
各
家
的
客
⼾
端
集
成
在
⼀
起
,
通过
上
⽹
找
到
⽹
⻚
版
相
当
于
本机
直
接
连
接
客
⼾
端
。
⽽
客
⼾
端
早
已
和
服
务
器
连
好
了
。
TCP
协
议
⼯
作
在
传
输
层
,
对
应
⽤
层
提
供
socket
接
⼝
,
调
⽤
⽹络
层
IP
协
议
提
供
的
接
⼝
。
应
⽤
层
调
⽤
API
进
⾏
编
程
时
由
API
调
⽤
TCP
。
TCP
协
议
⾯
向
连
接
(
指
TCP
协
议
在
通
信
之
前
必
须
要
先
连
接
)
。
通
信
前
必
须
三
次
握
⼿
建
⽴
连
接
关
系
后
才
能
开
始
通
信
。
TCP
协
议
提
供
可
靠
传
输
不
会
丢
包
和
乱
序
。
T
C
P
在
传
输
有
效
信
息
前
要
求
通
信
双
⽅
先
进
⾏
三
次
握
⼿
,
建
⽴
连
接
后
才
能
通
信
。
三
次
握
⼿
四
次
挥
⼿
HTTP
为
应
⽤
层
协
议
,
TCP
协
议
为
传
输
层
协
议
,
HTTP
协
议
底
层
调
⽤
TCP
协
议
。
TCP(
传
输
控
制
协
议
)
是
⼀
种
⾯
向
连
接
的
,
可
靠
的
,
基
于
字
节
流
的
传
输
层
协
议
,
定
义
数
据
传
输
和
连
接
⽅
式
的
规
范
。
HTTP(
超
⽂
本
传
输
协
议
)
定
义
传
输
数
据
内
容
的
规
范
。
TCP
的
接
收⽅收
到
数
据
包
后
会
向
发
送
⽅
发
送
ack
指
令
,
若
发
送
⽅
未
收
到则
重
传
。
T
C
P
协
议
的
有
效数
据
内
容
会
⾃
带
校
验
,
防
⽌
内
容
在
传
递过
程
中
损
坏
TCP
协
议
会
根
据
⽹络
带
宽
来
⾃
动
调
节
适
配
速
率
(
滑
动
窗
⼝
技
术
)
在
TCP
协
议
做
传
输
时
,
⼀
秒
发
多
少
包
,
⼀个
包
有
多⼤
是
⾃
动
协
商
的
。
具
体
⽅
式
是
A
按
⼀个
速
率
发
送
数
据
成
功
率
很
⾼
,
就
会
提
⾼
传
输
速
率
,
如
果
传
输
错
误
率
开
始
提
⾼
,
则
会
降
低
速
率
。
发
送
⽅
会
给
各
分割
报
⽂
编
号
,
接
收⽅
会
校
验
编
号
,
TCP
协
议
会
给
各
个
数
据
包
打
上
编
号
避
免
乱
序
。
建
⽴
连
接
的
条
件
客
⼾
端
向
服
务
器
发
送
FIN+ACK
,
服
务
器
回
复
ACK;
服
务
器
向
客
⼾
端
发
送
FIN,
客
⼾
端
回
复
ACK.
四
次
挥
⼿
后
断
开
连
接
。
服
务
器
客
⼾
端
均
可
发
起
断
开
连
接
基
于
T
C
P
通
信
的
服
务
模
式
具
有
公
⽹
I
P
的
服
务
器
so
cke
t
,
bind
,
li
st
en
后
处
于
监
听
状
态
;
so
cke
t
⽤
来
产
⽣
⼀个
⽹
络
接
⼝
,
bind
⽤
来
将
该
接
⼝
与
服
务
器
相
连
接
,
li
st
en
⽤
于
监
听
。
客
⼾
端
so
cke
t
后
,
c
o
nnec
t
发
起
连
接
。
建
⽴
连
接
后
,
双
⽅
都
可
以
收
发
数
据
,
也
均
可
关
闭
连
接
。
三
次
握
⼿
过
程
服
务
器
li
st
en
状
态
时
,
客
⼾
端
主
动
发
起
c
o
nnec
t
客
⼾
端
先
向
服
务
器
发
送
同
步
信
号
,
服
务
器
回
复
SYN
AC
K
信
号
,
客
⼾
端
接
收
后
回
复
AC
K
信
号
,
此
时
认
为
客
⼾
端
已
处
于
连
接
状
态
。
服
务
器
接
收
AC
K
信
号后
进
⼊
连
接
状
态
。
bind
li
st
en
c
o
nnec
t
s
end
与
r
ec
v
辅
助
性
函
数
I
P
地址
相
关
数
据
结
构
函
数
⽤
法
函
数
参
数
intsocket(intdomain,inttype,intprotocol);
domain
参
数
指
定
⼀个
通
信
域
,
如
AF_INET
代
表
IPV4,AF_INET6
代
表
IPV6
type
指
定
套
接
字
的
类
型
SOCK_STREAM
提
供
有
序
可
靠
的
双
向
的
连
接
模
式
的
数
据
流
,
即
传
输
层
使
⽤
TCP.
SOCK_DGRAM
传
输
层
使
⽤
UDPprotocol
指
定
⼀个
具
体
的
特
殊
协
议
,
⼀
般
为
0
表
⽰
默
认
。
socket
函
数
类
似
于
open
,
打
开
⼀个
⽹络
通
信
节
点
,
如
果
成
功则
返
回
⼀个
⽹络
⽂
件
描
述
符
(int
类
型
)
,
之
后
通过
操
作
⽹络
⽂
件
描
述
符
来
做
相
关
⽹络
连
接
。
socket
为
⽹
络
通
信
创
建
⼀个
端
点
,
并
返
回
⼀个
指
向
该
端
点
的
⽂
件
描
述
符
,
该
⽂
件
描
述
符
是
当
前
没
有
被
进
程
打
开
的
最
低
编
号
的
⽂
件
描
述
符
。
函
数
⽤
法
函
数
参
数
函
数
⽤
法
函
数
参
数
函
数
⽤
法
函
数
参
数
对
⽂
件
描
述
符
进
⾏
属
性
上
的
修
改
,
类
似
于
fcn
t
l
,
如
果
成
功则
返
回
值
0.
bind
()
将
a
dd
r
指
向
的
地址
分
配
给
⽂
件
描
述
符
so
ckfd
所
指
向
的
套
接
字
。
in
t
bind
(
in
t
so
ckfd
,
c
o
n
st
stru
c
t
so
ck
a
dd
r
*
a
dd
r
,
so
cklen
_
t
a
dd
r
len
);
S
o
ckfd
由
so
cke
t
函
数
得
到
的
端
点
的
⽂
件
描
述
符
c
o
n
st
stru
c
t
so
ck
a
dd
r
*
a
dd
r
⽤
来
表
⽰
⼀个
I
P
地址
,
so
cklen
_
t
a
dd
r
len
结
构
体
的
⼤
⼩
in
t
li
st
en
(
in
t
so
ckfd
,
in
t
b
a
ckl
o
g
);
S
o
ckfd
so
cke
t
函
数
返
回
得
到
的
⽂
件
描
述
符
B
a
ckl
o
g
表
⽰
监
听
队
列
的
⻓
度
⽤
于
监
听
端
⼝
,
将
被
监
听
的
客
⼾
端
请
求
按
先
后
顺
序
放
⼊
监
听
队
列
中
in
t
c
o
nnec
t
(
in
t
so
ckfd
,
c
o
n
st
stru
c
t
so
ck
a
dd
r
*
a
dd
r
,
so
cklen
_
t
a
dd
r
len
);
S
o
ckfd
客
⼾
端
创
建
端
点
得
到
的
⽂
件
描
述
符
c
o
n
st
stru
c
t
so
ck
a
dd
r
*
a
dd
r
要
链
接
的
服
务
器
的
I
P
地址
so
cklen
_
t
a
dd
r
len
地址
结
构
体
的
⻓
度
⾃
⼰
的
I
P
地址
协
议
栈
会
⾃
动
放
到
报
⽂
中
,
不
⽤
⼿
动
添
加
。
客
⼾
端
先
调
⽤
so
cke
t
创
建
端
点
,
再
调
⽤
c
o
nnec
t
连
接
服
务
器
ss
i
z
e
_
t
s
end
(
in
t
so
ckfd
,
c
o
n
st
vo
id
*
b
u
f
,
s
i
z
e
_
t
len
,
in
t
fl
a
g
s
);
so
ckfd
经
so
cke
t
创
建得
到
的
⽂
件
描
述
符
fl
a
g
s
⽂
件传
输
的
类
型
如
:
MS
G
_
E
OR
记
录
传
输
将
要
结
束
MS
G
_
OO
B
发
送
带
外
数
据
s
end
函
数
中
的
fl
a
g
只
有
在
⼀些
特
殊
协
议
中
才
会
⽤
到
,
默
认
为
0
。
ine
t
_
a
dd
r
()
stru
c
t
in
_
a
dd
r
//
表
⽰
I
P
地址
的
类
型
{
in
_
a
dd
r
_
t
s
_
a
dd
r
;
};
其
中
typ
edef
u
in
t
32_
t
in
_
a
dd
r
_
t
;
⽹络
内
部
⽤
来
表
⽰
I
P
地址
的
类
型
,
即
s
_
a
dd
r
实
质
上
是
⼀个
32
位
2
进
制
数
,
该
结
构
体
仅
⽀
持
表
⽰
I
PV
4
的
I
P
地址
ine
t
_
n
top
(),
ine
t
_
pto
n
()
这
两个
函
数
也
是
⽤
于
I
P
地址
转
换
,
n
top
⽤
于⼆
进
制
转
化
为
点
分
⼗
进
制
,
pto
n
⽤
于
点
分
⼗
进
制
转
化
为⼆
进
制
形式
。
与上
⾯
不
同
的
是
这
两个
函
数⽀
持
I
PV
6
。
⽤
于
I
P
地址
的
转
换
(
仅
⽀
持
I
PV
4
将
点
分
⼗
进
制
形式
(
以
字
符
串
格
式
输
⼊
)
转
化
为
32
位
⼆
进
制
数
a
dd
r
=
ine
t
_
a
dd
r
(
I
P
ADD
R
;
#
define
I
P
ADD
R
"192.168.1.102"
ine
t
_
n
top
(
AF
_
I
N
E
T
,&
a
dd
r
,
b
u
f
,
s
i
z
e
o
f
(
b
u
f
));
第
⼀个
参
数
选
定
通
信
域
即
I
PV
4
或
I
PV
6,
第
⼆个
参
数
为
要
转
化
的
⼆
进
制
I
P
地址
,
第
⼆个
参
数
是
⼀个
结
构
体
指
针
需
要
定
义
相
关
结
构
体
,
第
三个
可
⽤
数
组
或
指
针
⽤
来
存
放
转
化
后
的
点
分
⼗
进
制
字
符
串
r
e
t
=
ine
t
_
pto
n
(
AF
_
I
N
E
T
,
I
P
ADD
R
,
&
a
dd
r
);
将
点
分
⼗
进
制
I
P
地址
转
化
为⼆
进
制
形
式
。
返
回
值
为
转
化
是
否
成
功
。
第
⼀个
参
数
选
定
通
信
域
,
第
⼆个
参
数
为
点
分
⼗
进
制
字
符
串
,
第
三个
参
数
为
结
构
体
指
针
,
输
出
端
⼆
进
制
参
数
存
放
在
这
⾥
。
stru
c
t
so
ck
a
dd
r
_
in
//
封
装
I
PV
4
的
I
P
地址
{
__
SO
C
K
ADD
R
_
C
OMMON
(
s
in
_);
in
_
port
_
t
s
in
_
port
;
/*
端
⼝号
,
即
某
⼀
台
计
算
机
中
的
某
个
进
程
*/
stru
c
t
in
_
a
dd
r
s
in
_
a
dd
r
;
/*
⽤
来
表
述
I
P
地址
*/
上⼀个
结
构
体
封
装
在
这
⾥
/*
Pa
d
to
s
i
z
e
o
f
`
stru
c
t
so
ck
a
dd
r
'.
*/
u
n
s
igned
ch
a
r
s
in
_
z
e
ro
[
s
i
z
e
o
f
(
stru
c
tso
ck
a
dd
r
)
-
__
SO
C
K
ADD
R
_
C
OMMON
_
S
I
Z
E
s
i
z
e
o
f
(
in
_
port
_
t
)
-
s
i
z
e
o
f
(
stru
c
t
in
_
a
dd
r
)];
};
stru
c
t
so
ck
a
dd
r
这
个
结
构
体
是
lin
ux
的
⽹络编
程
接
⼝
中
⽤
来
表
⽰
I
P
地址
的
标
准
结
构
体
,
bind
,
c
o
nnec
t
等
函
数
中
都
需
要
这
个
结
构
体
,
这
个
结
构
体
是
兼
容
I
PV
4
和
I
PV
6
的
。
在
实
际
编
程
中
这
个
结
构
体会
被
⼀个
stru
c
t
so
ck
a
dd
r
_
in
或
者
⼀个
stru
c
t
so
ck
a
dd
r
_
in
6
所
填
充
.
客
⼾
端
程
序
编
写
客
⼾
端
发
送
和
接
收
服
务
器
发
送
和
接
受
⾃
定
义
协
议
so
cke
t
-
bind
-
li
st
en
-
a
cce
pt
,
测
试
代
码
如
下
so
cke
t
-
c
o
nnec
t
,
测
试
代
码
如
下
服
务
器
例
程
#
incl
u
de
<
sys
/
typ
e
s
.
h
>
#
incl
u
de
<
sys
/
so
cke
t
.
h
>
#
incl
u
de
<
ne
t
ine
t
/
in
.
h
>
#
incl
u
de
<
a
rp
a
/
ine
t
.
h
>
#
incl
u
de
<
st
di
o
.
h
>
#
incl
u
de
<
e
rr
n
o
.
h
>
#
define
I
P
c
o
nfig
"192.168.116.128"
#
define
S
E
RPORT
9003
in
t
m
a
in
(
vo
id
)
{
in
t
so
ckfd
=-1,
r
e
t
=-1,
clifd
=-1;
stru
c
t
so
ck
a
dd
r
_
in
a
dd
r
={0;
stru
c
t
so
ck
a
dd
r
_
in
cli
a
dd
r
={0;
so
cklen
_
t
len
0;
//
建
⽴
⽹络
端
点
so
ckfd
=
so
cke
t
(
AF
_
I
N
E
T
,
SO
C
K
_
STR
EA
M
,0;
if
(
so
ckfd
==-1
{
p
e
rror
("
so
cke
t
e
rror
");
r
e
tur
n
1;
}
pr
in
t
f
("
so
cke
t
fd
%
d
.\
n
",
so
ckfd
);
//
I
P
地址
与
⽹络
端
点
挂接
a
dd
r
.
s
in
_
f
a
mil
y
=
AF
_
I
N
E
T
;
a
dd
r
.
s
in
_
port
=
h
to
n
s
(
S
E
RPORT
;
//
端
⼝号
定
义
在
x
86
系
统
中
都
是
⼩
端
存
储
。
⽽
在
so
cke
t
⽹络
传
输
中
要
求
是
⼤
端
序
列
,
⽤
h
to
n
s
转
换
a
dd
r
.
s
in
_
a
dd
r
.
s
_
a
dd
r
=
ine
t
_
a
dd
r
(
I
P
c
o
nfig
);
r
e
t
=
bind
(
so
ckfd
,
(
c
o
n
st
stru
c
t
so
ck
a
dd
r
*&
a
dd
r
,
s
i
z
e
o
f
(
a
dd
r
));
if
(
r
e
t
==-1
{
p
e
rror
("
bind
e
rror
");
r
e
tur
n
1;
}
pr
in
t
f
("
bind
su
cce
ss
.\
n
");
//
监
听
r
e
t
=
li
st
en
(
so
ckfd
,50;
if
(
r
e
t
==-1
{
p
e
rror
("
li
st
en
e
rror
");
r
e
tur
n
1;
}
//
阻
塞
等
待
客
⼾
端
访
问
clifd
=
a
cce
pt
(
so
ckfd
,(
stru
c
t
so
ck
a
dd
r
*&
cli
a
dd
r
,&
len
);
if
(
clifd
==-1
{
p
e
rror
("
a
cce
pt
e
rror
");
r
e
tur
n
1;
}
pr
in
t
f
("
连
接
已
经
建
⽴
,
clien
t
fd
%
d
.\
n
",
r
e
t
);
r
e
tur
n
0;
}
客
⼾
端
例
程
#
incl
u
de
<
st
di
o
.
h
>
#
incl
u
de
<
sys
/
so
cke
t
.
h
>
#
incl
u
de
<
sys
/
typ
e
s
.
h
>
/*
S
ee
NOT
E
S
*/
#
incl
u
de
<
sys
/
so
cke
t
.
h
>
#
incl
u
de
<
a
rp
a
/
ine
t
.
h
>
#
incl
u
de
<
e
rr
n
o
.
h
>
#
define
I
P
c
o
nfig
"192.168.116.128"
#
define
S
E
RPORT
9003
in
t
m
a
in
(
vo
id
)
{
in
t
so
ckfd
=-1,
r
e
t
=-1;
stru
c
t
so
ck
a
dd
r
_
in
a
dd
r
={0;
//
建
⽴
⽹络
节
点
so
ckfd
=
so
cke
t
(
AF
_
I
N
E
T
,
SO
C
K
_
STR
EA
M
,0;
if
(
so
ckfd
==-1
{
p
e
rror
("
so
cke
t
e
rror
");
r
e
tur
n
1;
}
pr
in
t
f
("
so
cke
t
fd
%
d
.\
n
",
so
ckfd
);
//
连
接
服
务
器
a
dd
r
.
s
in
_
f
a
mil
y
=
AF
_
I
N
E
T
;
a
dd
r
.
s
in
_
port
=
h
to
n
s
(
S
E
RPORT
;
//
端
⼝号
定
义
在
x
86
系
统
中
都
是
⼩
端
存
储
。
⽽
在
so
cke
t
⽹络
传
输
中
要
求
是
⼤
端
序
列
,
⽤
h
to
n
s
转
换
a
dd
r
.
s
in
_
a
dd
r
.
s
_
a
dd
r
=
ine
t
_
a
dd
r
(
I
P
c
o
nfig
);
r
e
t
=
c
o
nnec
t
(
so
ckfd
,
(
c
o
n
st
stru
c
t
so
ck
a
dd
r
*&
a
dd
r
,
s
i
z
e
o
f
(
a
dd
r
));
if
(
r
e
t
==-1
{
p
e
rror
("
c
o
nnec
t
e
rror
");
r
e
tur
n
1;
}
pr
in
t
f
("
c
o
nnec
t
r
e
su
l
t
,
r
e
t
%
d
.\
n
",
r
e
t
);
r
e
tur
n
0;
}
Ma
kefile
a
ll
:
gcc
s
e
rv
e
r
.
c
-
o
s
e
r
gcc
clien
t
.
c
-
o
cli
cle
a
n
:
r
m
s
e
r
cli
*.
o
客
⼾
端
服
务
器
程
序
需
要
使
⽤
的
Ma
kefile
,
在
两个不
同
的
终
端
m
a
ke
后
会
产
⽣
可
执
⾏
⽂
件
s
e
r
和
cli
,
在
两个
终
端
分别
执
⾏
,
可
以
验
证
。
服
务
器
接
收
程
序
w
hile
(1)
{
r
e
t
=
r
ec
v
(
clifd
,
r
ec
v
b
u
f
,
s
i
z
e
o
f
(
r
ec
v
b
u
f
),0);
pr
in
t
f
("
接
收
%
d
\
n
",
r
e
t
);
pr
in
t
f
("
clien
t
发
送过
来
的
内
容
是
:
%
s
\
n
",
r
ec
v
b
u
f
);
mem
s
e
t
(
r
ec
v
b
u
f
,
0,
s
i
z
e
o
f
(
r
ec
v
b
u
f
));
}
客
⼾
端
发
送
程
序
w
hile
(1)
{
pr
in
t
f
("
请
输
⼊
\
n
");
s
c
a
nf
("
%
s
",
b
u
f
);
r
e
t
=
s
end
(
so
ckfd
,(
c
o
n
st
vo
id
*)
b
u
f
,
str
len
(
b
u
f
),0);
pr
in
t
f
("
发
送
字
符
数
为
%
d
\
n
",
r
e
t
);
}
规
定
发
送
和
接
收⽅
法
定
义
数
据
包
格
式
其
实
就
是
r
ec
v
,
s
end
,
wr
i
t
e
,
r
e
a
d
等
函
数
的
应
⽤
例
程
如
下
boardmix
boardmix boardmix
boardmix
boardmix
boa
boardmix boardmix
boardmix
boardmix
boardmix
boardmix
boardmix boardmix
boardm
boardmix
boardmix
boardmix
boardmix
mix
boardmix
boardmix boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix boa
boardmix
boardmix
boardmix
boardmix
rdmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
b
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix
boardmix boardmix
boardmix
boardmix
boardmix
boardmix
boardm
boardmix
ardmix
资源评论
JLUzhourz
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功