如何在iOS中使用套接字?
问题描述:
我必须实现一个iOS应用程序,它连接到一个Web服务器并从它接收事件,即服务器长轮询。我打算使用AsyncSocket
库。如何在iOS中使用套接字?
我的想法是在iPhone上打开一个套接字,在我第一次连接到它时将它发送到服务器,然后无限地监听套接字并根据服务器发送给它的事件更新GUI。这里是我的问题:
- 这是一个正确的方法,如果不是 - 应该怎么做?
- 服务器可以发送数据到我给它的套接字(只要套接字打开),如果iPhone和服务器在不同的网络上,并且iPhone在本地网络上?
答
- 是的。是的。
在Fone公司,您将获得在抵达的Fone公司大概是这样的信息:
-(void)onSocket:(AsyncSocket *)sock didReadData:(NSData*)data withTag:(long)tag
{
[data getBytes:&getMe length:sizeof(CommProt)];
// do not forget to roll in the next read...
[sock readDataToLength:sizeof(CommProt) withTimeout:-1 tag:0];
// now parse that command
}
,并在Fone公司,你会从Fone公司发送的信息很可能是这样的(有几个不同的方法)...
-(void) mySendStringData:(NSString *)sss
{
// so easy, thank goodness for AysncSocket
NSData* data = [sss dataUsingEncoding: NSASCIIStringEncoding];
[theSocket writeData:data withTimeout:0.5 tag:0];
[theSocket writeData:quickCR withTimeout:0.5 tag:0];
// (in the protocol at hand, we are using a delimiter on the end (a CR))
}
注。有可能这个职位,我做可帮助你:它提供了有关协议的内幕在iOS设备上:
Tablet(iPad/Android)-Server Communication Protocol
我希望它能帮助。
可以想象这将有助于iPad and Arduino Integration这个秘密的知识可以帮助Client/Server GKSessions干杯
巨大的感谢! :)我会试一试:),如果我被卡住了,我会再问一次,如果我可以:) – cpprulez 2010-11-23 08:19:53