【发布时间】:2017-08-05 04:37:41
【问题描述】:
我是套接字编程的新手,正在尝试重新使用 python。我想写一个简单的 TCP 程序,它会持续保持连接直到达到某个结束状态,在这种情况下,“关闭”是由客户端发送的。
这在第一次迭代中运行良好,但是在我发送的第二个东西上它冻结了,我不知道为什么。有人可以解释为什么我的程序冻结或如何更好地实现这一点?
TCPServer.py
from socket import *
serverPort = 12000
serverSocket = socket(AF_INET, SOCK_STREAM)
serverSocket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
serverSocket.bind(('', serverPort))
serverSocket.listen(1)
print('The server is ready to recieve')
while True:
connectionSocket, addr = serverSocket.accept()
sentence = connectionSocket.recv(1024).decode()
if(sentence == "close"):
connectionSocket.close()
capSentence = sentence.upper()
connectionSocket.send(capSentence.encode())
TCPClient.py
from socket import *
serverName = 'localhost'
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName, serverPort))
while(1):
sentence = raw_input('input sentence: ')
if(sentence == "close"):
break
clientSocket.send(sentence.encode())
retSentence = clientSocket.recv(1024)
print('From server; ', retSentence.decode())
clientSocket.close()
【问题讨论】:
标签: python sockets tcp connection