建立TCP服務器僞代碼:python
s = socket() #建立服務器套接字
服務器
s.bind() #套接字與地址綁定
socket
s.listen() #監聽鏈接
tcp
inf_loop: #服務器無限循環
ide
cs = s.accept() #接受客戶端鏈接,若是沒有鏈接,則阻塞
oop
comm_loop: #通訊循環
spa
cs.recv() / cs.send() #會話 orm
cs.close() #關閉客戶端套接字
utf-8
s.close() #關閉服務器套接字
input
如下是代碼:
#!/usr/bin/env python3 # encoding: utf-8 from socket import * from time import ctime HOST = '' PORT = 21567 BUFSIZE = 1024 ADDR = (HOST, PORT) tcpSerSock= socket(AF_INET, SOCK_STREAM) tcpSerSock.bind(ADDR) tcpSerSock.listen(5) while True: print('waiting for connection...') tcpCliSock, addr = tcpSerSock.accept() print('...connected from:', addr) while True: data = tcpSerSock.recv(BUFSIZE) if not data: break tcpSerSock.send('[%s] %s' % (bytes(ctime(), 'uft-8'), data)) tcpSerSock.close() tcpSerSock.close()
相應地建立TCP客戶端僞代碼:
cs = socket()
cs.connect()
comm_loop: #通訊循環
cs.recv() / cs.send() #會話
cs.close() #關閉客戶端套接字
如下是實現代碼:
#!/usr/bin/env python
# encoding: utf-8
from socket import *
HOST = '192.168.184.130'
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)
while True:
data = input('>')
if not data:
break
tcpCliSock.send(data)
data = tcpCliSock.recv(BUFSIZE)
if not data:
break
print(data)
tcpCliSock.close()
在這個最簡單的服務器套接字程序基礎上,能夠充分地擴充。