Python 套接字继续返回双字符串值

Python 套接字继续返回双字符串值,python,sockets,networking,Python,Sockets,Networking,所以我用python制作了一个简单的带有socket的服务器客户端,我有一个问题,就是服务器总是从客户端返回两倍的字符串,有人能帮我吗?谢谢 服务器: def new_user(client,addr): while True: data = client.recv(10030) client.settimeout(5.0) if not data: break if data == ("-quit

所以我用python制作了一个简单的带有socket的服务器客户端,我有一个问题,就是服务器总是从客户端返回两倍的字符串,有人能帮我吗?谢谢

服务器:

def new_user(client,addr):

    while True:
        data = client.recv(10030)
        client.settimeout(5.0)
        if not data:
            break
        if data == ("-quit-"):
            break
        data = data.upper()
        print("Client ->",data)
        data = raw_input("Admin ->")
        client.send(data)
    client.close()

def main():

    start_user()

def start_user():

    s = socket.socket()
    s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
    print("Socket Telah Dibuat")
    try:
        s.bind(('',4303))
        print("Bind telah dibuat")
    except:
        print("Bind failed"+str(sys.exc_info()))
        sys.exit(1)
    s.listen(1)
    while True:
        client , addr = s.accept()
        print("Client telah connect:"+str(addr))
        Thread(target=new_user,args=(client,addr)).start()
    s.close()
客户:

def main():

    s = socket.socket()
    print("Socket Telah Dibuat")
    try:
        s.connect(('',4303))
        print("telah connect")
    except:
        print("connection failed"+str(sys.exc_info()))
        sys.exit(1)
    print("Untuk Quit Masukkan--quit--:")
    message = raw_input("->")
    while message != ("--quit--"):
        s.send(message)
        data = s.recv(10030)
        if not data:
            break
        data = data.upper()
        print("Admin ->",data)
        message = raw_input("->")
        s.send(message)
    s.close()
服务器运行
客户端正在发送两次消息:

while message != ("--quit--"):
    s.send(message)  // HERE
    data = s.recv(10030)
    if not data:
        break
    data = data.upper()
    print("Admin ->",data)
    message = raw_input("->")
    s.send(message) // AND HERE

可能您可以更改为:

message = ""    
while message != ("--quit--"):
    message = raw_input("->")
    s.send(message)
    data = s.recv(10030)
    if not data:
        break
    data = data.upper()
    print("Admin ->",data)

@如果你觉得这个答案有用,你应该投票支持它,如果正确的话,你也应该考虑接受它。
while message != ("--quit--"):
    s.send(message)  // HERE
    data = s.recv(10030)
    if not data:
        break
    data = data.upper()
    print("Admin ->",data)
    message = raw_input("->")
    s.send(message) // AND HERE
message = ""    
while message != ("--quit--"):
    message = raw_input("->")
    s.send(message)
    data = s.recv(10030)
    if not data:
        break
    data = data.upper()
    print("Admin ->",data)