0

マシン間のプロセス間通信に取り組んでいます。現在、インターネットに接続せずに、ハブで接続された 3 台のラップトップを使用しています。

インターネットなしでこのようなコードを使用して、マシン間でメッセージを送受信するようにこのコードを適応させる方法はありますか?

import socket
import sys
try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error:
    print("Failed to create a socket")
print("Socket created")
host = ("www.google.com")
port = 80
try:
    remote_ip = socket.gethostbyname(host)
except socket.gaierror:
    print("Hostname could not be found, exiting finding socket")
    sys.exit()
print("Ip adress of",host,"is",remote_ip)
s.connect((remote_ip, port))
print("Socket connected to",host,"on ip", remote_ip)
message = "GET / HTTP/1.1\r\n\r\n"
try:
    s.send(message.encode("utf-8"))
except socket.error:
    print("Failed")
    sys.exit

print("Message send successful")
reply = s.recv(4096)
print(reply)
s.close()
4

3 に答える 3

0

同じコードを使用できますが、ホスト名の dns-lookup をスキップして、「サーバー」が正しいポートでリッスンしていることを確認してください。

個人的には、 netcatのラッパーを作成するか、この回答のようなものを実装します: Python での Netcat の実装

インターネットに接続していなくても問題ありません。両方のマシンが物理的に接続され、同じネットワーク/ネットマスクと到達可能な IP アドレスを使用するように構成されていることを確認してください。これを割り当てているdhcp(私が推測)がないため、これを手動で静的に設定する必要があります。

于 2013-10-08T14:51:30.213 に答える