[100]socket作業
目的:
1.程式碼
Server端
#!/usr/bin/env python
#coding:utf-8
from socketserver import BaseRequestHandler,ThreadingTCPServer # socketserver 能對socket做封裝
import threading
BUF_SIZE=1024
class Handler(BaseRequestHandler):
def handle(self):
address,pid = self.client_address
print('%s connected! '%address)
# 啟動server準備讓client傳送訊息
while True:
data = self.request.recv(BUF_SIZE) # 接收client端傳的信息
if len(data)>0:
print(data.decode('utf-8')+ ' is received') #印出client端傳送的信息
cur_thread = threading.current_thread()
self.request.sendall('response'.encode('utf-8'))#送response到client端
print('send response to the client')
else: #如果client端輸入的信息長度小於0,server端會關閉對該client端的連接
print('close')
break
if __name__ == '__main__':
HOST = '127.0.0.1'
PORT = 8998
ADDR = (HOST,PORT)
server = ThreadingTCPServer(ADDR,Handler) #ADDR是監聽地址,handler是以建立連接的處理類
print('Server is listening')
server.serve_forever() #監聽,建立TCP連接後,對該連接創造新的socket與線程
print(server)Client端
Last updated