2016-04-10 25 views
0

Python'un soket modülünü kullanarak doğrudan bir IP'ye bağlanmanın mümkün olup olmadığı konusunda bir sorum var. Kodu yerel olarak test ettim ve her şey iyi çalışıyor, ancak çevrimiçi duruma getirirken sorunlarım var (ana bilgisayarım yuva destekliyor olsa bile). Temel olarak, bilgisayarımdan gelen bir bağlantıyı dinlemek için yuva kullanan bir server.py dosyası çalıştırıyorum. Bir tuşa tıkladığınızda, istemci, arduino kodunu çalıştırmak için sunucudan izin isteyecektir. Bu yerel olarak çalışıyor, ancak çevrimiçi almaya çalıştığımda, öyle değil. Burada teoride bir şey eksik olabilir ya da sahip olduğumdan daha fazla bilgi gerektiren bir şey yapıyorum. Kısaca, sorum şu, bilgisayarımdaki belirli dosyayı çevrimiçi olarak nasıl hedefleyebilirim?Python Sunucu Dosyası Nasıl Kullanılır Seri Kullanılıyor

# I've imported bottle here 

import socket 
host = '192.XXX.X.XXX' <--this being my computer's IP? Is this possible? 
port = 8080 

# I have a form that runs this def 
# the go is just a way to communicate with the server file, which   
# runs the arduino code 

@route('/systems', method='POST') 
def syson(): 
    our_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    our_socket.connect((host, port)) 
    message = "turn_on_arduino" 
    our_socket.send(bytes(message,'UTF-8')) 
    reply = our_socket.recv(1024) 
    return bottle.redirect("/systems") 

Eğer geri kalanına görülür şekilde

(sizin ip görmek için (iyi o yalnızca bir yerel ağ içindeki ama) ....

+0

"Sorunlarınız var" ve "çalışmıyor" hataları değil. Ne istediğini ve neye sahip olduğunu söyle. – stark

cevap

0

192.168.1.xxx ip değil teşekkürler internetin) ... https://www.whatismyip.com/ için

gitmek ama muhtemelen kurulum için yönlendirici bazı bağlantı noktası yönlendirme kurallarını gerekecektir (her yönlendirici farklı çalışır) veya moduna doğrudan bilgisayarınıza bağlamak bir yönlendirici geçmeden m ... Bu da bir istemci üzerinde çalıştırmak içinçok daha kolay olurdu

ISP seçtiğiniz ne olursa olsun liman üzerinde gelen bağlantıları bloke etmeyen ... varsayar Sunucudan istemciden sunucuya bağlantı kuran yerel bilgisayarınız ...

+0

Merhaba Joran. Bu mantıklı. Şu anda liman yönlendirmeyi okuyorum; özellikle, neden gereklidir. Eğer daha kolay bir seçenekle gidersem, bunun teoride nasıl işe yarayacağını söyleyebilir misiniz? Bu yüzden müşterimi bilgisayarımda barındırıyorum ama sonra ne olacak? Web sunucumu bu senaryoda nasıl kullanırım? Tekrar teşekkürler –

+0

yorumlarda cevap verebildiğimden daha çok şey yolunda ... temel olarak farklı bir iş parçacığında (veya daha iyisi websockets kullan) yuva dinleyicisini başlatın ... yerel bilgisayarınız sokete bağlanır ve sadece sunucuya bekler. Mesaj gönder ... gerçekten muhtemelen (beceri seviyeniz tarafından tahmin) istemci mesajlar ve (yerel) istemci sadece onları sorgulamak ve –

+0

Tamam bir soket kullanmayın bir dinlenme api çalıştırmak için Tamam, kontrol edeyim websocket ve oradan kendi kendine çalışma. Yardım etmek için zaman ayırdığınız için teşekkür ederim. Herşey gönlünce olsun. –

İlgili konular