我一直在遵循http://www.binarytides.com/python-socket-programming-tutorial/的python套接字教程,并对源代码进行了一些修改,以创建客户端和服务器端脚本。据我测试,服务器正在运行,没有任何问题。但是客户端给我带来了一个不是很严重的无效语法错误:
文件"client.py",第17行
....try:
.^
以下是我的源代码:
#!/usr/bin/env python
import socket, select, string, sys
#***** prompt *****
def prompt() :
sys.stdout.write('<You> ')
sys.stdout.flush()
#***** main func *****
if __name__ == "__main__":
#if(len(sys.argv) < 3) :
# print ("Usage : python telnet.py hostname port")
# sys.exit()
HOST = raw_input("Enter host:\n")
PORT = int(raw_input("Enter port:\n")
try :
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(2)
except socket.error, msg:
print("Failed to create socket. Error code: " + str(msg[0]) + " , Error message: " + msg[1]
#***** connect to remote host *****
try :
s.connect((HOST, PORT))
except :
print ("Unable to connect")
sys.exit()
print ("Connected to remote host. Start sending messages")
prompt()
while 1:
socket_list = [sys.stdin, s]
#***** Get the list sockets which are readable *****
read_sockets, write_sockets, error_sockets = select.select(socket_list , [], [])
for sock in read_sockets:
#***** incoming message from remote server *****
if sock == s:
data = sock.recv(4096)
if not data :
print ("\nDisconnected from chat server")
sys.exit()
else :
#print data
sys.stdout.write(data)
prompt()
#***** user entered a message *****
else :
msg = sys.stdin.readline()
s.send(msg)发布于 2016-04-10 19:15:59
这条线
PORT = int(raw_input("Enter port:\n")遗漏了结尾)。
经验法则:奇怪的语法错误->查看上面的代码行。
https://stackoverflow.com/questions/36528989
复制相似问题