Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 颤振-SocketException:连接失败(操作系统错误:无法访问网络,错误号=101)_Dart_Flutter_Web3 - Fatal编程技术网

Dart 颤振-SocketException:连接失败(操作系统错误:无法访问网络,错误号=101)

Dart 颤振-SocketException:连接失败(操作系统错误:无法访问网络,错误号=101),dart,flutter,web3,Dart,Flutter,Web3,连接到以太坊节点时出错 E/flatter(23790):[错误:flatter/lib/ui/ui\u dart\u state.cc(148)] 未处理的异常:SocketException:连接失败(操作系统错误: 无法访问网络,错误号=101) ----------------------------------下面是web3连接代码----------------------------------------------- import 'package:flutter/materi

连接到以太坊节点时出错

E/flatter(23790):[错误:flatter/lib/ui/ui\u dart\u state.cc(148)] 未处理的异常:SocketException:连接失败(操作系统错误: 无法访问网络,错误号=101)

----------------------------------下面是web3连接代码-----------------------------------------------

import 'package:flutter/material.dart';
import 'package:http/http.dart';
import 'package:web3dart/web3dart.dart';
import 'dart:async';

const String rpcUrls = 'https://node1.bitcoiin.com';
class HomeScreen extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _HomeScreenState();
  }
}
class _HomeScreenState extends State<HomeScreen> {
  @override
  void initState() {
    main();
    super.initState();
  }
  main(){
  var ethClient = new Web3Client(apiUrls, new Client());
  print(ethClient.getBlockNumber());
}
导入“包装:颤振/材料.省道”;
导入“包:http/http.dart”;
导入“包:web3dart/web3dart.dart”;
导入“dart:async”;
常量字符串rpcUrls=https://node1.bitcoiin.com';
类主屏幕扩展StatefulWidget{
@凌驾
状态createState(){
返回_homescrenstate();
}
}
类_homescrenstate扩展状态{
@凌驾
void initState(){
main();
super.initState();
}
main(){
var ethClient=newweb3client(apirls,newclient());
打印(ethClient.getBlockNumber());
}

我仍然不明白为什么这个解决方案有效,但我遇到了同样的问题,我尝试用服务器的IP地址替换
localhost
(例如,
192.168.1.33
),成功了

请为您的应用尝试以下代码:

main(){
  var httpClient = new Client();
  // You tried the code below and it didn't work
  // var ethClient = new Web3Client('http://localhost:8545', httpClient);

  // Try this code instead. (Replace "192.168.1.33" with the IP of your server)
  var ethClient = new Web3Client('http://192.168.1.33:8545', httpClient);

  print(ethClient.getBlockNumber());
}

您是否在模拟器上运行应用程序?是的,我正在使用模拟器出于某种原因,您的模拟器无法查找服务器的IP(这是一个网络问题,不是颤振问题),请尝试从浏览器打开相同的URL以确保。我在本地系统上运行以太坊节点,我使用了该RPC URL()在nodejs应用程序中,它运行良好抱歉,我没有理解你的意思,你是说这个URL在你的本地机器或模拟器上运行良好?