我目前正在学习使用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