2015-06-23 30 views
2

我是新開的端口和服務器端編程。我試圖在我的服務器上用python打開一個端口,然後形成一個iOS應用程序從該端口獲取一些數據。我做了一些研究,知道我可以打開一個端口,這樣如何打開服務器上的端口

import socket    # Import socket module 

s = socket.socket()   # Create a socket object 
host = socket.gethostname() # Get local machine name 
port = 12345    # Reserve a port for your service. 
s.bind((host, port))  # Bind to the port 

s.listen(5)     # Now wait for client connection. 
while True: 
    c, addr = s.accept()  # Establish connection with client. 
    print 'Got connection from', addr 
    c.send('Thank you for connecting') 
    c.close()    # Close the connection 

但我的問題是,您說,我只是想找回從該端口一個簡單的字符串我怎麼該字符串添加到這個開放的港口,我已經找到了一些從iOS端口獲取數據的方法,比如這個庫https://github.com/armadsen/ORSSerialPort,但是如何將數據像字符串一樣放在開放端口上?

感謝您的幫助提前。

回答

0

當您調用方法s.accept()時,它將返回套接字對象作爲第一個返回值。您可以撥打socket.rescv方法來讀取數據 -

data = c.recv(1024) 

但是千萬記住這是一個阻塞調用。欲瞭解更多信息,你可以閱讀這post

+0

我不太清楚你的意思,你可以多加一點?你會知道如何在iOS中獲得該字符串,如果不是很好,但我仍然有點困惑? –

+0

基本上 - 你打開一個端口並從python附加一個套接字。 iOS可以通過TCP連接到此端口。當你使用'c.send()'從服務器端發送一些東西時。您可以從iOS讀取套接字 - 'serialPort:didReceiveData:'callback -https://github.com/armadsen/ORSSerialPort#receiving-data – Chan

+0

好吧什麼是變化的c?我試圖從你發佈在答案中的樣本中找出它,但我無法看到它? –

相關問題