我目前正在學習使用Python進行網絡連接,並創建了一個簡單的TCP服務器和客戶端。然而,當我運行客戶端腳本並從提示符中輸入內容時,客戶端和服務器連接狀況良好,我輸入的輸入信息中出現NameError異常。這不應該是這種情況,因爲輸入應該被標識符引用(數據)。使用Python進行網絡編程 - TCP客戶端/服務器
我已經通過代碼,但似乎無法找到問題。請參閱下面的兩個客戶端和服務器代碼:
客戶端腳本:
#!/usr/bin/env python
from socket import *
from time import ctime
HOST = 'localhost'
PORT = 21567
BUFSIZ = 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(BUFSIZ)
if not data:break
print(data.decode('utf-8'))
tcpCliSock.close()
服務器腳本:
from socket import *
from time import ctime
HOST = ""
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
print("waiting for a connection.....")
tcpCliSock, addr= tcpSerSock.accept()
print("....connected from:", addr)
while True:
data = tcpCliSock.recv(BUFSIZ)
if not data:break
tcpCliSock.send(bytes('[%s] %s' % (ctime(), 'utf-8'), data))
tcpCliSock.close()
tcpSerSock.close()
非常感謝!
嘗試data = raw_input('>')而不是輸入('>')在您的客戶端腳本中。 – Ram 2014-10-01 13:21:46
您的代碼似乎是正確的,所以顯示整個錯誤信息或者我們很難找出什麼是錯誤的 – laike9m 2014-10-01 13:22:48