当我连接到互联网然后它工作完美但是当互联网没有连接时,我在以下行上出错:
$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连接套接字.在您的委托方法中
-(void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode
如果套接字出错,您将收到通知:
case NSStreamEventErrorOccurred:
要么
case NSStreamEventEndEncountered:
在这种情况下,您可以向用户显示网络错误.但是,如果它们失去了互联网连接,那么在尝试通过套接字发送一些数据之前,您将无法知道.因此,要解决此问题,您应该实现Reachability.
或Apple助手类.
当没有连接时以及有连接允许您根据需要通知用户时,您将收到通知.
希望我理解正确.