2019.20
科学技术创新
基于
Python
的网络编程研究与分析
Research
and
Analysis
of
Network
Program
m
ing
Based
on
Python
董
先
(
天津铁道职业技术学院
铁道电信系
,
天津
300240)
当今的时代是一个网络的时代,
网络无处不在
。
为了实现不
同电脑之间的通信,就需要使用网络编程
。
为了把所有不同类
型的计算机连接起来,
就必须规定一套全球通用的协议,
为了
实现互联网络目标,互联网协议簇,即通用协议标准出现了
。
Internet
是由
inter
和
net
两个单词组合起来的,原意就是连接
“
网络
”
的网络,
有了
Internet
,
任何私有网络,
只要支持这个协
议,就可以接入互联网
。
因为互联网协议包含了上百种协议标
准,
但是最为重要的两个协议是
TCP
和
IP
协议
。
IP
协议,
在通
信时,
通信双方必须知道对方的标识,
这好比收发快递,
必须知
道对方的地址一样
。
互联网上每个计算机唯一的标识就是
IP
地
址
。
IP
地址实际上是一个
32
位整数,
它是以字符串表示的
IP
地
址,
如
172.16.1.1
。
TCP
协议则是建立在
IP
协议之上的
。
TCP
协
议负责在两台计算机之间建立可靠的连接,
保证数据包按顺序
到达
。
TCP
协议会通过
3
次握手建立可靠连接
。
而相对于
TCP
协议,
UDP
协议则是面向无连接的协议
。
使用
UDP
协议时,
不需
要建立连接,
只需要知道对方的
IP
地址和端口号,
就可以直接
发送数据包了
。
但是这种连接无法保证一定能够送达数据
。
虽
然
UDP
传输的数据可靠性较差,但它的优点是比
TCP
协议的
传输速度要快很多
。
对于不要求可靠性的数据而言,就可以使
用
UDP
协议
。
1
Socket
简介
为了实现两个程序的网络通信,二者均必须使用
Socket
套
接字
。
Socket
的英文原义是
“
孔
”
或者
“
插座
”
,
通常称之为
“
套接
字
”
,
用于扫描
IP
地址和端口,
它是一个通信链的句柄,
可以用
来实现不同虚拟机或不同计算机之间的通信
[1]
。
在连接
Internet
的主机上一般运行了多个服务软件,同时提供几种服务
。
每种
服务都会打开一个
Socket
,
并绑定到一个端口上,
不同的端口对
应于不同的服务
。
2
TCP
编程
由于
TCP
连接具有安全可靠的特性,
所以应用更为广泛
。
在
程序中,
如果想要完成一个
TCP
服务器的功能,
需要的流程如
下:
(
1
)
使用
Socket()
创建一个套接字;
(
2
)
使用
bind()
绑定
IP
和
端口
[2]
;
(
3
)
使用
listen
()
使套接字变为可被动连接;
(
4
)
使用
accept()
等待客户端的连接;
(
5
)
使用
recv/send()
接收发送数据
。
在
这里编写一个想浏览器发送
hello
world
的
TCP
服务器端程序,
如下所示:
import
socket
#
导入
socket
模块
host
=
'127.0.0.1'
#
主机
IP
port
=
8080
#
端口号
web
=
socket.socket()
#
创建
socket
对象
web.bind((host,port))
#
绑定端口
web.listen(5)
#
设置最多连接数
print
('
服务器等待客户端连接
...')
#
开启死循环
while
True:
conn,addr
=
web.accept()
#
建立客户端连接
data
=
conn.recv(1024)
#
获取客户端请求数据
print(data)
#
打印接收到的数据
conn.sendall(b'HTTP/1.1
200
OK\r\n\r\nHello
World')
#
向客户端发送数据
conn.close()
#
关闭连接
3
UDP
编程
UDP
是面向消息的协议,
如果通信时不需要建立连接,
数据
的传输自然是不可靠的,
UDP
一般用于多点通信和实时的数据
业务
[3]
,
例如:
语音广播
、
聊天软件等
。
UDP
服务器不需要
TCP
服
务器那么多的设置,因为不是面向连接的
。
除了等待传入的连
接之外,几乎不需要做其他工作
。
下面实现一个将摄氏温度转
化为华氏温度的功能
。
服务器端代码如下:
摘
要
:
计算机网络就是把各个计算机连接到一起,
让网络中的计算机可以相互的通信
。
网络编程就是通过程序实现两台计
算机的通信
。
Python
作为最为人性化的程序语言,
在网络编程方面相对于其他高级语言,
具有变成逻辑简单,
代码量少,
最为接近
人类自然语言的特点
。
将主要研究
Python
语言如何实现
TCP
编程和
UDP
编程
。
关键词
:
Python
;
网络编程
Abstract:
Computer
network
is
to
connect
all
computers
together
so
that
the
computers
in
the
network
can
communicate
with
each
other.
Network
programming
is
to
realize
the
communication
between
two
computers
through
program.
As
the
most
humanized
programming
language,
Python
has
the
characteristics
of
simple
logic,
less
code
and
closest
to
human
natural
language
in
network
programming
compared
with
other
high-level
languages.
This
paper
will
mainly
study
how
to
implement
TCP
programming
and
UDP
programming
in
Python
language.
Key
words:
Python;
Network
programming
中图分类号
:
TP312
文献标识码
:
A
文章编号
:
2096-4390
(
2019
)
20-0085-02
(
转下页
)
85
-
-