欢迎访问宙启技术站
智能推送

Python函数实现网络编程的简单案例

发布时间:2023-06-23 19:41:00

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语言及其提供的网络编程库是非常有用的工具,帮助我们实现各种网络通信功能。