如何在iOS中使用套接字连接从服务器获取响应?

时间:2014-10-09 11:16:00

标签: ios sockets response inputstream outputstream

我想在成功建立套接字连接后从服务器获取响应。我使用了GitHub Socket source code的源代码。

我在按钮点击下面放置了以下代码:

 NSString *outgoingMessage = @"Some string to be sent to server";
 NSData *messageData = [outgoingMessage dataUsingEncoding:NSUTF8StringEncoding]
 const void *bytes = [messageData bytes];
 uint8_t *uint8_t_message = (uint8_t*)bytes;

 [outputStream write:uint8_t_message maxLength:strlen([outgoingMessage cStringUsingEncoding:[NSString defaultCStringEncoding]])];

 while (![inputStream hasBytesAvailable]) {
            usleep(1);
  } 
  uint8_t buffer[1024];
  [inputStream read:buffer maxLength:1023];
  NSString *outputString = [NSString stringWithUTF8String:(char *)buffer];

  NSLog(@"outputString : %@ ",outputString);

我得到一个空的回复。调试后我的代码也没有进入 NSStreamEventHasBytesAvailable 案例

- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { .. }

可能有什么问题需要解决?

1 个答案:

答案 0 :(得分:1)

我建议您使用Objective-C WebSocket客户端,SocketRocket来命名一个: https://github.com/square/SocketRocket

可以在此处找到使用Websocket客户端的简单示例:http://www.elabs.se/blog/66-using-websockets-in-native-ios-and-android-apps