socketclient.py

-0-

import socket

client = socket.socket()

client.connect(("localhost", 6971))   ##开始连接 (ServerIP,ServerPort)
while True:
    msg = input("Please input the message>>")
    if len(msg) == 0:continue
    client.send(msg.encode("utf-8"))

    msg_size = client.recv(2048)
    ##如果发送的数据大于接受的数据,就会出现接受不完整,存在缓冲区。要等缓冲区上一条的命令结果的数据发送完,才会发送新的数据
    print("size:",msg_size,type(msg_size.decode()))   #test sentence
    client.send("准备接受数据了".encode("utf-8"))       ##这两行是为了防止粘包
    receive_sizeS = 0
    receive_data = b''
    while receive_sizeS < int(msg_size.decode("utf-8")):
        data = client.recv(2048)
        receive_sizeS += len(data)
        receive_data +=data
    else:
        print("The data has done.")
        print(receive_data.decode())
        print("datasize:",len(receive_data))
client.close()
原文地址:https://www.cnblogs.com/lwsup/p/7252227.html