伺服端程式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) PORT = 1060 network = '192.168.176.1' message = '國立虎尾科技大學電機資訊學院歡迎您' s.bind((network, PORT)) |
客戶端程式:
1 2 3 4 5 6 7 8 9 10 11 | import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) PORT = 1060 network = '192.168.176.1' message = '國立虎尾科技大學電機資訊學院有電機、光電、資訊、電子等系所' s.connect((network, PORT)) s.send(message.encode('utf-8')) data = s.recv(65535) print('TCP Client 接收訊息來自{}:\n{}'.format(network, data.decode('utf-8'))) |
測試步驟如下:
1.先開啟IDLE程式,選擇File->New File,把伺服端程式貼上,選擇Run執行,記得存檔。
2.再開啟另一個IDLE程式,選擇File->New File,把客戶端程式貼上,選擇Run執行,記得存檔。
執行結果:
1.伺服端
2.客戶端
我們可以修訂TCP伺服端,可以持續地接受客戶端的連線以及資料。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) PORT = 1060 network = '192.168.1.105' message = '國立虎尾科技大學電機資訊學院歡迎您' s.bind((network, PORT)) print('聆聽訊息來自 ', s.getsockname()) s.listen(5) while(1): conn, address = s.accept() print('TCP Server is connected by ' + str(address)) data = conn.recv(65535) print('TCP Server 接收訊息從 {}:\n{}'.format(address, data.decode('utf-8'))) conn.send(message.encode('utf-8')) s.close() |
沒有留言:
張貼留言