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
  • asp之家 网络编程 m.aspxhome.com