python编写的tcp,udp实例

xiaoxiao2021-02-27  140

三. TCP通信实例 1.服务器 tcpSerSock.py         核心操作如下:         ss = socket()                # 创建服务器套接字         ss.bind()                   # 地址绑定到套接字上         ss.listen()                      # 监听连接              inf_loop:                       # 服务器无限循环                   cs = ss.accept()       # 接受客户端连接 阻塞式:程序连接之前处于挂起状态              comm_loop:                 # 通信循环                   cs.recv()/cs.send()   # 对话 接受与发送数据              cs.close()                      # 关闭客户端套接字               ss.close()                      # 关闭服务器套接字 (可选) [python] view plaincopy  # -*- coding: utf-8 -*-    from socket import *   from time import ctime      HOST = 'localhost'          #主机名   PORT =  21567               #端口号   BUFSIZE = 1024              #缓冲区大小1K   ADDR = (HOST,PORT)      tcpSerSock = socket(AF_INET, SOCK_STREAM)   tcpSerSock.bind(ADDR)       #绑定地址到套接字   tcpSerSock.listen(5)        #监听 最多同时5个连接进来      while True:                 #无限循环等待连接到来       try:           print 'Waiting for connection ....'           tcpCliSock, addr = tcpSerSock.accept()  #被动接受客户端连接           print u'Connected client from : ', addr              while True:               data = tcpCliSock.recv(BUFSIZE)     #接受数据               if not data:                   break               else:                   print 'Client: ',data               tcpCliSock.send('[%s] %s' %(ctime(),data)) #时间戳          except Exception,e:           print 'Error: ',e   tcpSerSock.close()          #关闭服务器   2.客户端 tcpCliSock.py         核心操作如下:         cs = socket()                 # 创建客户端套接字              cs.connect()                  # 尝试连接服务器              comm_loop:                 # 通讯循环                   cs.send()/cs.recv()    # 对话 发送接受数据              cs.close()                       # 关闭客户端套接字 [python] view plaincopy  # -*- coding: utf-8 -*-    from socket import *      HOST = 'localhost'          #主机名   PORT =  21567               #端口号 与服务器一致   BUFSIZE = 1024              #缓冲区大小1K   ADDR = (HOST,PORT)      tcpCliSock = socket(AF_INET, SOCK_STREAM)   tcpCliSock.connect(ADDR)    #连接服务器      while True:                 #无限循环等待连接到来       try:           data = raw_input('>')           if not data:               break           tcpCliSock.send(data)            #发送数据           data = tcpCliSock.recv(BUFSIZE)  #接受数据           if not data:               break           print 'Server: ', data       except Exception,e:           print 'Error: ',e              tcpCliSock.close()          #关闭客户端   UDP通信 1.服务器 udpSerSock.py         核心操作如下:         ss = socket()                # 创建服务器套接字         ss.bind()                   # 绑定服务器套接字              inf_loop:                       # 服务器无限循环                   cs = ss.recvfrom()/ss.sendto()                                                            # 对话 接受与发送数据              ss.close()                      # 关闭服务器套接字  [python] view plaincopy  # -*- coding: utf-8 -*-    from socket import *   from time import ctime      HOST = ''                   #主机名   PORT =  21567               #端口号   BUFSIZE = 1024              #缓冲区大小1K   ADDR = (HOST,PORT)      udpSerSock = socket(AF_INET, SOCK_DGRAM)   udpSerSock.bind(ADDR)       #绑定地址到套接字      while True:                 #无限循环等待连接到来       try:           print 'Waiting for message ....'           data, addr = udpSerSock.recvfrom(BUFSIZE)          #接受UDP           print 'Get client msg is: ', data           udpSerSock.sendto('[%s] %s' %(ctime(),data), addr) #发送UDP           print 'Received from and returned to: ',addr          except Exception,e:           print 'Error: ',e   udpSerSock.close()          #关闭服务器   2.客户端 udpCliSock.py         核心操作如下:         cs = socket()                            # 创建客户端套接字              inf_loop:                                  # 服务器无限循环                   cs.sendto()/cs.recvfrom()   # 对话 接受与发送数据                                                              cs.close()                                 # 关闭客户端套接字  [python] view plaincopy  # -*- coding: utf-8 -*-    from socket import *      HOST = 'localhost'          #主机名   PORT =  21567               #端口号 与服务器一致   BUFSIZE = 1024              #缓冲区大小1K   ADDR = (HOST,PORT)      udpCliSock = socket(AF_INET, SOCK_DGRAM)      while True:                 #无限循环等待连接到来       try:           data = raw_input('>')           if not data:               break           udpCliSock.sendto(data, ADDR)            #发送数据           data,ADDR = udpCliSock.recvfrom(BUFSIZE)  #接受数据           if not data:               break           print 'Server : ', data          except Exception,e:           print 'Error: ',e              udpCliSock.close()          #关闭客户端  

转载请注明原文地址: https://www.6miu.com/read-14109.html

最新回复(0)