【问题标题】:be maked Infinite loop in python.3在python.3中制作无限循环
【发布时间】:2020-09-10 12:14:33
【问题描述】:

我想在 python.3 中制作一个服务器和客户端 这是我的服务器:

import socket

ip =('192.168.1.101',12345)
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.bind(ip)

s.listen(1)

print('Server is ready')

client , addr = s.accept()

print('one client has conected to me'+str(addr))

while True:

    a = input('what do you want to tell ? ')
    if a == 'q':
        break

    a=a.encode('utf_8')

    client.sendall(a)

client.close()

我的客户是:

import socket

ip = ('192.168.1.101', 12345)
conecttion = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

conecttion.connect(ip)

while True:
    data = conecttion.recv(1024)
    
    if data == 'q':
        break
print(data)

    
conecttion.close()

但是当我在客户端发送“q”时,会变成无限循环。 当我发送“q”连接关闭时我应该怎么做。 谁能帮帮我。

【问题讨论】:

    标签: python-3.x loops input client infinite-loop


    【解决方案1】:

    两个问题:

    • 在服务器上,您没有发送“q”。你在发送之前就中断了。
    • 在客户端,接收到的数据是二进制的,所以需要转换成字符。

    试试这个代码:

    服务器:

    import socket
    
    ip =('127.0.0.1',12345)  # local machine
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    
    s.bind(ip)
    s.listen(1)
    
    print('Server is ready')
    
    client , addr = s.accept()
    
    print('one client has conected to me'+str(addr))
    
    while True:
        a = input('what do you want to tell ? ')
        aa=a.encode('utf_8')
        client.sendall(aa)  # byte data
        if a == 'q':   # original string
            break
    
    client.close()
    

    客户:

    import socket, time
    
    ip = ('127.0.0.1', 12345)    # local machine
    conecttion = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    conecttion.connect(ip)
    
    while True:
        data = conecttion.recv(1024)
        
        if data and chr(data[0]) == 'q':
            break
            
        print(data)
    
    conecttion.close()
    

    【讨论】:

      猜你喜欢
      • 2018-07-20
      • 2022-01-15
      • 1970-01-01
      • 2017-10-13
      • 2019-11-13
      • 2013-10-12
      • 2018-01-21
      相关资源
      最近更新 更多