Créé parce qu'il peut être utilisé pour une simple confirmation de communication entre les serveurs. Le livre auquel je faisais référence était python2, donc cela ne fonctionnait pas subtilement. Je vais télécharger une version légèrement modifiée pour python3.
À propos, l'hypothèse d'exécution est
・ Python 3.7.6
① Créez TCPserver.py et TCPclient.py sur le même HOST ② Exécutez TCPserver.py depuis le terminal ③ Démarrez un autre terminal et exécutez TCPclient.py
TCPclient.py
import socket
target_host="127.0.0.1"
target_port=9999
#create socket object
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# connect to object
client.connect((target_host, target_port))
# data transmission
client.send(b"ABCDEFG")
#recieve data
response = client.recv(4096)
print(response)
TCPserver.py
import socket
import threading
bind_ip = "0.0.0.0"
bind_port = 9999
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((bind_ip, bind_port))
server.listen(5)
print("[*] Listening on %s:%d" % (bind_ip, bind_port))
def handle_client(client_socket):
request = client_socket.recv(1024)
print("[*] Recieved: %s:" % request)
client_socket.send("ACK!")
client_socket.close()
while True:
client,addr = server.accept()
print("[*] Accepted connection from: %s:%d" % (addr[0],addr[1]))
client_handler = threading.Thread(target=handle_client, args=(client,))
cliend_handler.start()
左側がTCPserver.py 右側がTCPclient.py Résultat d'exécution de.
Je pense que cette quantité de code est suffisante si je le connecte simplement. J'ai également appris à quel point il est facile si le serveur et le client ont le même port. En parlant de manuels, c'est vrai, mais quand on regarde ce qui fonctionne avec le code Cela m'impressionne.
Recommended Posts