天天看點

python socket通信_Python3 socket同步通信簡單示例

本文執行個體講述了Python3 socket同步通信。分享給大家供大家參考,具體如下:

本文比較簡單,适合入門用,作個筆記,友善日後抄寫

一個服務端,一個用戶端,而且是阻塞方式,一次隻能接受一個用戶端連接配接并通信噢。

用戶端發送‘bye',結束與服務端的通信,如果發送'shutdown',服務端将會關閉自己!

服務端代碼:

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)

quit = False

shutdown = False

while True:

print('waiting for connection...')

tcpCliSock,addr = tcpSerSock.accept()

print('...connected from: ',addr)

while True:

data = tcpCliSock.recv(BUFSIZE)

data = data.decode('utf8')

if not data:

break

ss = '[%s] %s' %(ctime(),data)

tcpCliSock.send(ss.encode('utf8'))

print(ss)

if data == 'bye':

quit = True

break

elif data == 'shutdown':

shutdown = True

break

print('Bye-bye: [%s: %d]' %(addr[0],addr[1]))

tcpCliSock.close()

if shutdown:

break

tcpSerSock.close()

print('Server has been

用戶端代碼:

from socket import *

HOST = 'localhost'

PORT = 21567

BUFSIZE = 1024

ADDR = (HOST,PORT)

tcpCliSock = socket(AF_INET,SOCK_STREAM)

tcpCliSock.connect(ADDR)

while True:

data = input('>')

if not data:

continue

print('input data: [%s]' %data)

tcpCliSock.send(data.encode('utf8'))

rdata = tcpCliSock.recv(BUFSIZE)

if not rdata:

break

print(rdata.decode('utf8'))

if data == 'bye' or data == 'shutdown':

break

tcpCliSock.close()

希望本文所述對大家Python程式設計有所幫助。