2015-06-23 5 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

хорошо, что такое varaible c? Я пытаюсь понять это из образца, который вы отправили в ответ, но я не вижу его? –

Смежные вопросы