当我连接到互联网时,它工作完美,但当互联网未连接时,我会在以下几行出错:
$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:
在这种情况下,您可以向用户显示网络错误。但是,如果他们失去互联网连接,您将无法知道,直到您尝试通过套接字发送一些数据。因此,要解决此问题,您应该实现可达性。
或 Apple 助手类。
当没有连接时以及有连接时您将收到通知,允许您根据需要通知用户。
希望我理解正确。
关于php - 警告 : stream_socket_client( ) , php_network_getaddresses getaddrinfo failed nodename nor serv name provided or notknown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18121763/