http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server建立與服務器的例子套接字連接iPhone雷德奇
從Python服務器端
from twisted.internet.protocol import Factory, Protocol
from twisted.internet import reactor
class IphoneChat(Protocol):
def connectionMade(self):
print "a client connected"
factory = Factory()
factory.protocol = IphoneChat
reactor.listenTCP(80, factory)
print "Iphone Chat server started"
reactor.run()
然後他有
- (void) initNetworkCommunication {
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"localhost", 80, &readStream, &writeStream);
inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];
}
現在我的問題來自Iphone方面,它如何知道什麼是localh ost是? 我可以從計算機本身瞭解它知道什麼是本地主機,但在Iphone設備上(不是計算機中的模擬器,所以它應該知道本地主機)。 實際的Iphone如何知道'localhost'?
你在iphone裏面運行一個python服務器嗎?怎麼樣??? – 2012-03-28 19:44:35
我不希望代碼能夠在真實設備上工作,除非'localhost'被替換爲運行python腳本的服務器的主機名/ IP。 – 2012-03-28 19:45:47
python服務器是計算機。 Iphone是試圖連接到它的設備。如果他在模擬器上運行應用程序,那麼服務器和設備都是相同的。 – lilzz 2012-03-28 19:50:50