在不同的计算机系统中使用python进行TCP套接字编程

时间:2017-10-27 18:16:38

标签: python sockets

我试图在不同的系统中使用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()

1 个答案:

答案 0 :(得分:0)

TCP是一种流媒体协议,您无法假设您从接收端获取了在相同“块”中发送的字节数。你需要决定一个框架解决方案。经常使用的方法是使用商定的终止字符(例如\ 0或换行符)或首先发送消息的长度,然后是消息有效负载的字节数。