0

Python ソケット モジュールを使用して、次の TCP クライアントとサーバーを作成しました。ただし、それらを実行した後、出力はありません。プログラムが recv_all メソッド サーバーの while ループから抜け出せないようです。

import socket


def recv_all(sock):
    data = []
    while True:
        dat = sock.recv(18)
        if not dat:
            break
        data.append(dat)

    return "".join(data)


sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
HOST = '127.0.0.1'
PORT = 45678
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind((HOST, PORT))
sock.listen(1)
print "listening at", sock.getsockname()
while True:
    s, addr = sock.accept()
    print "receiving from", addr
    final = recv_all(s)
    print "the client sent", final
    s.sendall("hello client")
    s.close()

クライアント :

import socket


def recv_all(sock):
    data=[]
    while True:
        dat=sock.recv(18)
        if not dat:
            break
        data.append(dat)
    return "".join(data)

sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
PORT=45678
HOST='127.0.0.1'
sock.connect((HOST,PORT))
sock.sendall("hi server")

final=recv_all(sock)

print "the server sent",final
4

1 に答える 1