TCP 客户端未从 TCP 服务器检索任何数据 - 在 python 中

问题描述 投票:0回答:0

我是 python 和网络编程的新手,我正在用 python 编写一个交换信息的 TCP 服务器客户端。 除了客户端代码中的最后一个命令,一切都正常:

    # Receive from server
    number_received = socket.recv(2048).decode('utf-8')
    print("Number Generated in Server: ", number_received.decode('utf-8'))

它永远不会出错,它只是在我运行程序时没有出现。 谢谢你,

服务器代码

import random
import socket

# Create the server
HOST = '127.0.0.1'
PORT = 9090
serverAddress = (HOST, PORT)

#Create Server Socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # using IPV4 and TCO/IP connection

#BInd the Server socket with the Server port number.
server.bind(serverAddress)

# wait for clients to start communications with maximum 10 queued connections.
server.listen(10)
print ("The server is ready to receive.")


while True:
    #Create Connection Socket
    communication_socket, address = server.accept()
    print(f"Connected to {address}")

    #Recieve the message from client.
    message = communication_socket.recv(2048).decode('utf-8')
    print(f"Message from Client is: {message}")

    # Generate a random number.
    ServerNumber = random.randint(1, 51)
    print(f"The random number in the range of 1-50 is: {ServerNumber}")

    message = communication_socket.recv(2048).decode('utf-8')

    # Send the message
    communication_socket.send(f"From the Server: {ServerNumber}".encode('utf-8'))
    communication_socket.send(ServerNumber.encode('utf-8'))



    # Close communication with client
    communication_socket.close()

客户代码

import socket

# Create Server
HOST = '127.0.0.1'
PORT = 9090

# Create client socket (IPv4, TCP/IP socket)
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# request to connect to the server.
socket.connect((HOST, PORT))

# Announce the Client Name
print("This is the client computer.")

# The input function to ask the user to enter a number between 1-20
number = int(input("Enter a number in the range of 1-20: "))

while not int(number) in range(1, 21):
        number = input("Invalid Integer! The number must be in range of 1-20: ")
        print("The number is: " + number)

# Calculate the sum of the first n natural number
n = int(number)
sum = 0
# loop from 1 to n
for num in range(1, n + 1, 1):
    sum = sum + num

# Start communication with the server and send the sum number.
while 1:
    # Send message (conversion form int ot String)
    socket.send(str(sum).encode("utf8"))

    # Receive from server
    number_received = socket.recv(2048).decode('utf-8')
    print("Number Generated in Server: ", number_received.decode('utf-8'))


    # Close connection
    socket.close()
python tcpclient serversocket tcpserver tclientsocket
© www.soinside.com 2019 - 2024. All rights reserved.