socketserver

TCP服务器端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/env python

import socketserver
from time import ctime

HOST = ''
PORT = 21567
ADDR = (HOST, PORT)

class MyRequestHandler(socketserver.StreamRequestHandler):
def handle(self):
print('...connected from: ', self.client_address)
self.wfile.write('[%s] %s'.encode('utf-8') % (bytes(ctime(), 'utf-8'), self.rfile.readline()))

tcpServ = socketserver.TCPServer(ADDR, MyRequestHandler)
print('waiting for connection...')
tcpServ.serve_forever()

对handle进行了重写,原本为

1
def handle(self):pass

TCP客户端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python

from socket import *

HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)

while True:
tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)
data = input('> ')
if not data:
break
tcpCliSock.send(bytes(data + "\n", "utf-8"))
data = tcpCliSock.recv(BUFSIZ)
if not data:
break
print(data.strip().decode('utf-8'))
tcpCliSock.close()

在这个例子中,连接了服务器两次