Python函数实现网络编程的简单案例
Python语言是目前较为流行的高级编程语言之一,它在网络编程方面表现出色,具有良好的编程语言特性,以及自带的网络编程库,使得Python编写网络程序相对简单。本篇文章将介绍一个简单的Python函数实现网络编程的案例,涉及Python基础语法、网络协议、数据传输等方面。
一、Socket套接字概述
Socket套接字是网络编程中最基础的概念之一。在Python中,Socket套接字由socket库提供支持,通过该库可以建立各种类型的套接字,以实现网络通信。
二、Python函数实现网络编程的案例
1.建立TCP Server
(1)服务端代码:
import socket
def create_tcp_server(server_port):
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_socket.bind(('', server_port))
server_socket.listen(1)
print('TCP Server listening on port ',server_port)
while True:
conn, addr = server_socket.accept()
print("Connected by",addr)
while True:
data = conn.recv(1024)
if not data:
break
print("Received data from client:", repr(data))
conn.sendall(data)
conn.close()
create_tcp_server(8080)
(2)运行并测试:
在命令行窗口中运行Python文件,看到输出“TCP Server listening on port 8080”,表示服务端已经启动,并正在监听8080端口连接请求。
在另一个命令行窗口中使用telnet命令连接该服务端:
telnet localhost 8080
连接成功后,在服务端窗口中看到“Connected by”和客户端地址信息。
在客户端窗口中输入任意字符,按Enter键,服务端就能收到客户端发送的数据,并输出在控制台上。
2.建立UDP Server
(1)服务端代码:
import socket
def create_udp_server(server_port):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind(('', server_port))
print('UDP Server listening on port',server_port)
while True:
data, addr = server_socket.recvfrom(1024)
print("Received data from client:", repr(data))
server_socket.sendto(data, addr)
create_udp_server(8080)
(2)运行并测试:
在命令行窗口中运行Python文件,看到输出“UDP Server listening on port 8080”,表示服务端已经启动,并正在监听8080端口的连接请求。
在另一个命令行窗口中使用nc(netcat)命令连接该服务端:
echo "Hello World" | nc -4u localhost 8080
连接成功后,在服务端窗口中看到“Received data from client”和客户端地址信息。
服务端也会收到客户端发送的数据,并将其打印出来。
三、总结
通过上述TCP和UDP Server的案例,我们了解了Python语言可以非常轻松地实现简单的Socket网络编程,这让我们的编程工作变得更加高效和快捷。在日常处理网络编程问题时,Python语言及其提供的网络编程库是非常有用的工具,帮助我们实现各种网络通信功能。
