python TCP时间戳服务器端、客户端

服务端:

# encoding utf-8
from socket import *
from time import ctime

HOST = '127.0.0.1'  # 是空的,这个时对bind()方法的标识,表示他可以使用任何可用的地址
PORT = 21567
BUFSIZ = 1024  # 缓冲区大小设置为1KB
ADDR = (HOST, PORT)

tcpSerSock = socket()  # 创建TCP服务器套接字1
tcpSerSock.bind(ADDR)  # 绑定地址
tcpSerSock.listen(5)  # 参数5 是在连接被转接或拒绝之前,传入连接请求的最大数

while True:
    print('waiting for connection')
    tcpCliSock, addr = tcpSerSock.accept()
    print('...connect form:', addr)

    while True:
        data = tcpCliSock.recv(BUFSIZ)
        if not data:  # 如果消息为空,则跳出循环
            break
        # tcpCliSock.send('[%s] %s' % ((bytes(ctime(), 'utf-8')), data)) # 注意传送数据时应该是bytes类型的数据
        #tcpCliSock.send(b'[%s] %s') % (bytes(ctime(), 'utf-8'), data)
        #tcpCliSock.send((bytes(ctime(), 'utf-8'), data))
        tcpCliSock.send(data)
        tcpCliSock.send((bytes(ctime(), 'utf-8')))
        #tcpCliSock.send(data)

    tcpCliSock.close()  # 跳出循环后,关闭当前的客户端socket,并且等待下一个客户端接入
tcpSerSock.close()

客户端:

#encoding utf-8
from
socket import * HOST = '127.0.0.1' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpCliSock = socket() tcpCliSock.connect(ADDR) while True: data = input('> ') if not data: #如果客户端没有输入,那么程序就会结束 break tcpCliSock.send(bytes(data, 'utf-8')) data = tcpCliSock.recv(BUFSIZ) if not data: #如果服务器终止且对recv()方法调用失败 break data = tcpCliSock.recv(BUFSIZ) print(data.decode('utf-8')) tcpCliSock.close()

 

原文地址:https://www.cnblogs.com/francischeng/p/9568376.html