警告:stream_socket_client(),php_network_getaddresses getaddrinfo失败的节点名称或提供的服务名称或未知

当我连接到互联网然后它工作完美但是当互联网没有连接时,我在以下行上出错:

$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.

Github project

或Apple助手类.

Apple Reachability

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

希望我理解正确.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...