2014-10-31 2 views
24

С момента последнего обновления OSX (Yosemite) мой сервер localhost заполнен сообщениями об ошибках из эфира (но я его не использую). Каждый раз это то же самое:AirPlay messes up localhost

[31/Oct/2014 05:40:42] code 400, message Bad request version ('RTSP/1.0') 
[31/Oct/2014 05:40:42] "GET /info?txtAirPlay&txtRAOP RTSP/1.0" 400 - 

Это просто раздражает иметь свой сервер полный сообщений об ошибках, так что если у кого есть ключ, чтобы исправить это, или удалить ротацию, я был бы очень благодарен :)

ответ

28

Я думаю, что нашел ответ: на cisco discovery forum они указали вывод nmap, который показал диапазоны портов Yosemite Discoveryd. Оказывается, компания Apple использует порт 5000:

PORT  STATE SERVICE VERSION 
3689/tcp open daap  Apple iTunes DAAP 11.0.1d1 
5000/tcp open rtsp  Apple AirTunes rtspd 160.10 (Apple TV) 
7000/tcp open http  Apple AirPlay httpd 
7100/tcp open http  Apple AirPlay httpd 
62078/tcp open tcpwrapped 
5353/udp open mdns  DNS-based service discovery 

Как вы можете себе представить, что это порт Колба по умолчанию, просто измените порт работает на что-либо иное, чем 5000, и эта проблема должна исчезнуть. Это расширение Flask https://github.com/miguelgrinberg/Flask-Runner может сделать вашу жизнь намного проще, чем жесткое кодирование порта в команде run.

0

Я столкнулся с этой же проблемой, но оказалось, что у меня была ошибка в моем коде. Я пытался подключиться к серверу Redis с неправильным номером порта и каким-то образом появилась ошибка Airplay.

Я не уверен, что это устраняет вашу проблему, но это может помочь кому-то еще столкнуться с тем же вопросом, что и я.

+0

Это не та же проблема для меня, но спасибо за обмен, что я не только один! :) –

2

Также, под Flask.run() является аргументом port, поэтому вы можете указать, какой порт вы хотите использовать, это работает для localhost.

Адрес source documentation.

Пример:

from flask import Flask, Response 

app = Flask(__name__) 

@app.route('/') 
def default(): 
    return Response(status=200) 

if __name__ == '__main__': 
    app.run(debug=True, port=12345) 
Смежные вопросы