我试图在不同的系统中使用Python运行TCP客户端和服务器套接字程序(系统A = windows7(python2.7)& system B = windows10(python 3.6))。服务器程序在系统B中运行,但是当客户端在系统A中执行时,它(客户端程序)在几秒钟后显示消息终止:
错误10060 ::连接失败,因为连接方在一段时间后没有正确响应或建立的连接失败,因为连接的主机无法响应
小于大写的客户端程序
from socket import *
import socket
clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientSocket.connect(('192.168.43.130',9067))
sentence = input('Input lowercase sentence:')
clientSocket.send(sentence.encode())
modifiedSentence = clientSocket.recv(1024).decode()
print ('From Server:', modifiedSentence)
clientSocket.close()
SERVER PROGRAM从小写到大写
from socket import *
import socket
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind(('',9067))
serverSocket.listen(1)
print ('The server is ready to receive')
while 1:
connectionSocket, addr = serverSocket.accept()
sentence = connectionSocket.recv(1024).decode()
print("String from client-->",sentence)
capitalizedSentence = sentence.upper()
print("String in server-->",capitalizedSentence)
connectionSocket.send(capitalizedSentence.encode())
print("-------------------------")
connectionSocket.close()
答案 0 :(得分:0)
TCP是一种流媒体协议,您无法假设您从接收端获取了在相同“块”中发送的字节数。你需要决定一个框架解决方案。经常使用的方法是使用商定的终止字符(例如\ 0或换行符)或首先发送消息的长度,然后是消息有效负载的字节数。