ネットワーク経由でラズベリーパイに接続しようとしています。私はraspiのサーバーとしてpythonを実行しています。以下は、Web から取得した単純なサーバー コードです。
import socket
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = socket.gethostname()
port = 80
print (host)
print (port)
serversocket.bind((host, port))
serversocket.listen(5)
print ('server started and listening')
while 1:
(clientsocket, address) = serversocket.accept()
print ("connection found!")
data = clientsocket.recv(1024).decode()
print (data)
clientsocket.send("data is sent".encode())
クライアント コードをテストします。
import socket
s = socket.socket()
host = "192.168.1.247"
port = 80
s.connect((host,port))
s.send('randomData'.encode())
data = ''
data = s.recv(1024).decode()
print (data)
s.close
他のコンピューターでテストしましたが、これらは正常に動作します。raspi がクライアントで、他のコンピューターがサーバーの場合、正常に動作します。しかし、raspi がサーバーで、他のコンピューターがクライアントの場合、常に同じエラーが発生します。「ターゲット マシンがアクティブに拒否したため、接続できませんでした」
C# を使用して接続しようとしています:
TcpClient client = new TcpClient("192.168.1.247", 80)
エラーをスローします:"No connection could be made because the target machine actively refused it"
注: クライアントとしての -raspi からサーバーとしての raspi は正常に動作します。- いくつかの調査を行ったところ、これの最も一般的な原因はファイアウォールまたはルーターの不良であると思われます。--ルーターのせいではないと思いますが、他のコンピューターにうまくアクセスできます。-- Raspbian の「wheezy」Debian ディストリビューションを使用していますが、ファイアウォールが付属しているとは思いません。
どんな助けでも大歓迎です。ありがとう!