php - 警告 : stream_socket_client( ) , php_network_getaddresses getaddrinfo failed nodename nor serv name provided or notknown

标签 php ios error-handling stream-socket-client

当我连接到互联网时,它工作完美,但当互联网未连接时,我会在以下几行出错:

$socket_context = stream_context_create($options);

$this->smtp_conn = @stream_socket_client($host.":".$port, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $socket_context);

我故意不连接到互联网,我想在用户未连接到互联网时在 iOS 应用程序中向用户显示 alertView:

You are not connected to internet

代替

Warning : stream_socket_client( ) , php_network_getaddresses getaddrinfo failed nodename nor serv name provided or notknown

那么我该如何处理这个错误呢?

// -------------- Code where I am setting NSStream in .m file :----------

#import "LoginViewController.h"

// --------------- here I set the delegate -------------
@interface LoginViewController () <NSStreamDelegate>

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

}

我们将不胜感激。

最佳答案

假设您正在使用 NSStream 连接您的套接字。在你的委托(delegate)方法中

-(void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode

如果套接字出现以下错误,您将收到通知:

case NSStreamEventErrorOccurred:

case NSStreamEventEndEncountered:

在这种情况下,您可以向用户显示网络错误。但是,如果他们失去互联网连接,您将无法知道,直到您尝试通过套接字发送一些数据。因此,要解决此问题,您应该实现可达性。

Github project

或 Apple 助手类。

Apple Reachability

当没有连接时以及有连接时您将收到通知,允许您根据需要通知用户。

希望我理解正确。

关于php - 警告 : stream_socket_client( ) , php_network_getaddresses getaddrinfo failed nodename nor serv name provided or notknown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18121763/

相关文章:

php - Apache PHP HTTP_USER_AGENT 和 get_browser 返回不正确的值

javascript - Vue router 从 vue router 链接获取值

ios - Unity Chartboost

android - 致命异常: main Android

error-handling - 如何隐藏COM错误?

php - 如何将数据库转储作为下载返回

php - 复制/复制/克隆 mysql_result 对象

objective-c - 声明 UITouchGestures?

iOS7 - 在触摸屏幕之前不会出现 map View 图钉

python - 处理捕获的异常并将其引发到 try block 之外的正确方法是什么