Python网络编程之TCP与UDP协议套接字用法示例
作者:毕加索的ma 时间:2023-12-07 06:34:45
本文实例讲述了Python网络编程之TCP与UDP协议套接字用法。分享给大家供大家参考,具体如下:
TCP协议
服务器端:
#!/usr/bin/env python
from socket import *
from time import ctime
HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM) ##创建服务器TCP套接字
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
print 'waiting for connection...'
tcpCliSock, addr = tcpSerSock.accept() ##等待客户端连接
print '...connected from:', addr
while True:
data = tcpCliSock.recv(BUFSIZ) ##监听客户端是否发送消息
if not data:
break
tcpCliSock.send('[%s] %s' % (
ctime(), data))
tcpCliSock.close()
tcpSerSock.close()
客户端:
#!/usr/bin/env python
from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM) ##创建客户端TCP套接字
tcpCliSock.connect(ADDR) ##连接服务器
while True:
data = raw_input('> ')
if not data:
break
tcpCliSock.send(data)
data = tcpCliSock.recv(BUFSIZ) ##监听客户端发送消息
if not data:
break
print data
tcpCliSock.close()
UDP协议
服务器端:
#!/usr/bin/env python
from socket import *
from time import ctime
HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
udpSerSock = socket(AF_INET, SOCK_DGRAM)
udpSerSock.bind(ADDR)
while True:
print 'waiting for message...'
data, addr = udpSerSock.recvfrom(BUFSIZ)##监听并接受客户端发的消息
udpSerSock.sendto('[%s] %s' % ( ##给消息加上时间戳并返回给客户端
ctime(), data), addr)
print '...received from and returned to:', addr
udpSerSock.close()
客户端:
#!/usr/bin/env python
from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
udpCliSock = socket(AF_INET, SOCK_DGRAM)
while True:
data = raw_input('> ')
if not data:
break
udpCliSock.sendto(data, ADDR) ##给服务器发送数据
data, ADDR = udpCliSock.recvfrom(BUFSIZ) ##客户端接受带时间戳的数据
if not data:
break
print data
udpCliSock.close()
希望本文所述对大家Python程序设计有所帮助。
来源:http://www.cnblogs.com/paulwinflo/p/5015325.html
标签:Python,网络编程,TCP,UDP
0
投稿
猜你喜欢
Javascript实现动态菜单添加的实例代码
2024-04-22 22:23:25
python3.7环境下sanic-ext未生效踩坑解析
2022-06-30 12:56:35
在python中利用numpy求解多项式以及多项式拟合的方法
2021-05-14 03:01:24
基于Python搭建人脸识别考勤系统
2021-07-08 10:17:42
30个最常用css选择器解析
2011-06-16 20:36:37
Python编程基础之字典
2021-10-02 13:34:56
使用Rotate Master实现MySQL 多主复制的实现方法
2024-01-13 11:23:25
Python编程实现及时获取新邮件的方法示例
2022-09-28 16:52:15
节日快乐! Python画一棵圣诞树送给你
2022-06-11 07:53:09
Python 新建文件夹与复制文件夹内所有内容的方法
2022-03-22 00:05:05
浅谈Python中的数据类型
2022-11-29 06:19:22
Python Pandas学习之数据离散化与合并详解
2022-09-28 20:12:07
Python在for循环中更改list值的方法【推荐】
2023-03-05 07:14:28
asp fso删除非空目录的例子
2008-11-26 20:03:00
SQL Server自动更新统计信息的基本算法
2012-10-07 11:02:50
Django模板语言 Tags使用详解
2022-09-27 23:37:35
python中常用的内置模块汇总
2023-12-28 14:57:01
Python绘制3D立体花朵示例详解
2021-06-26 02:59:54
Python中栈、队列与优先级队列的实现方法
2023-11-03 02:16:53
Mysql简易索引方案讲解
2024-01-20 15:08:11