python

超轻量级php框架startmvc

Python网络编程之TCP与UDP协议套接字用法示例

更新时间:2020-05-20 16:42:01 作者:startmvc
本文实例讲述了Python网络编程之TCP与UDP协议套接字用法。分享给大家供大家参考,具体如下

本文实例讲述了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 网络编程 TCP UDP 套接字