没有 iOS 个套接字框架可以连接到服务器套接字
No iOS socket frameworks can connect to server socket
我正在尝试使用套接字框架连接到我拥有的套接字。我能够很好地连接原始套接字代码,例如:
uint portNo = 9900;
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"123.456.789.159", portNo, &readStream, &writeStream);
inputStream = (__bridge NSInputStream *)readStream;
outputStream = (__bridge NSOutputStream *)writeStream;
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];
但是当我尝试使用任何框架时,我都会收到错误消息,我完全不知道为什么。我试过 SocketRocket 和 Jetfire。这是我尝试过的在 SocketRocket 中连接的代码:
_webSocket.delegate = nil;
[_webSocket close];
_webSocket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:@"wss://123.456.789.159"]];
_webSocket.delegate = self;
NSLog(@"Opening Connection...");
[_webSocket open];
我也试过添加端口号。
_webSocket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:@"wss://123.456.789.159:9900"]];
还尝试使用 http、https、ws。还是没有。
有人知道为什么吗?
WebSocket 是一种协议,用于在 HTTP 之上提供类似原始套接字的功能。您的服务器公开的套接字可能不支持 WebSocket 协议。
如果您想要在 iOS 上进行更高级别的 API 原始套接字编程,CocoaAsyncSocket 可能是您的不错选择。
我正在尝试使用套接字框架连接到我拥有的套接字。我能够很好地连接原始套接字代码,例如:
uint portNo = 9900;
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"123.456.789.159", portNo, &readStream, &writeStream);
inputStream = (__bridge NSInputStream *)readStream;
outputStream = (__bridge NSOutputStream *)writeStream;
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];
但是当我尝试使用任何框架时,我都会收到错误消息,我完全不知道为什么。我试过 SocketRocket 和 Jetfire。这是我尝试过的在 SocketRocket 中连接的代码:
_webSocket.delegate = nil;
[_webSocket close];
_webSocket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:@"wss://123.456.789.159"]];
_webSocket.delegate = self;
NSLog(@"Opening Connection...");
[_webSocket open];
我也试过添加端口号。
_webSocket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:@"wss://123.456.789.159:9900"]];
还尝试使用 http、https、ws。还是没有。
有人知道为什么吗?
WebSocket 是一种协议,用于在 HTTP 之上提供类似原始套接字的功能。您的服务器公开的套接字可能不支持 WebSocket 协议。
如果您想要在 iOS 上进行更高级别的 API 原始套接字编程,CocoaAsyncSocket 可能是您的不错选择。