Python: сокеты не работают через локальную сетьPython

Программы на Python
Ответить
Anonymous
 Python: сокеты не работают через локальную сеть

Сообщение Anonymous »

Я недавно вернулся из отпуска, и мой базовый сервер сокетов Python 2 теперь не может общаться с клиентами через локальную сеть. Сервер находится на Mac, а клиент — мой Raspberry Pi или компьютер с Windows 7. Здесь я упростил код сервера и клиента, чтобы привести пример:

Сервер

Код: Выделить всё

import socket
from thread import *

HOST = socket.gethostname()

print HOST

PORT = input ("Enter the PORT number (1 - 10,000)")

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM )
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
print "Socket Created"

s.bind((HOST, PORT))

print "Socket Bind Complete"

s.listen(10)
print "Socket now listening"

#Sending message to connected client
#This only takes strings (words

while True:
#Wait to accept a connection - blocking call
connection, addr = s.accept()
print "Connection Established!"

connection.send("Welcome to the server. Type something and hit enter\n")

#loop so that function does not terminate and the thread does not end
while True:

#Receiving from client
data = connection.recv(1024)
if not data:
break
connection.sendall(data)
print data
connection.close()
s.close()
Клиент

Код: Выделить всё

import socket #for sockets
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print "Socket Created"

#Get host and port info to connect
host = raw_input("HOST >>>   ")
port = 2468
s.connect((host, port))

while True:
#Send some data to the remote server
message = raw_input(">>>  ")

#set the whole string
s.sendall(message)

reply = s.recv(1024)
print reply
Вопрос

Что здесь происходит? Я получаю локальный IP-адрес, но сценарии по-прежнему не могут обмениваться данными. Может ли это быть проблема с операционной системой?



ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
  • Пингинг

    а. Мне удалось проверить связь с PI с моего терминала Mac:

    Код: Выделить всё

    PING raspberrypi (67.63.55.3): 56 data bytes
    64 bytes from 67.63.55.3: icmp_seq=0 ttl=240 time=17.434 ms
    64 bytes from 67.63.55.3: icmp_seq=1 ttl=240 time=18.180 ms
    64 bytes from 67.63.55.3: icmp_seq=2 ttl=240 time=22.046 ms
    64 bytes from 67.63.55.3: icmp_seq=3 ttl=240 time=25.124 ms
    64 bytes from 67.63.55.3: icmp_seq=4 ttl=240 time=31.773 ms
    
    б. Мой PI не смог найти Mac в качестве хоста. Я посмотрю, что можно сделать, чтобы это исправить.

    c. Мой компьютер смог выполнить PING мой Mac. Мой Mac смог проверить связь с моим компьютером.
  • Брандмауэр
Брандмауэр моего Mac отключен. Я проверю на [сайте Raspberry Pi Stackexchange] наличие брандмауэра у PI.

Я добавлю дополнительную информацию, как только проверю свою машину с Windows

Подробнее здесь: https://stackoverflow.com/questions/156 ... g-over-lan
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»