如何修复颤振中的“SocketException:os错误:连接超时错误号110,地址= 000.000.0.00,端口= 44935”

Posted

技术标签:

【中文标题】如何修复颤振中的“SocketException:os错误:连接超时错误号110,地址= 000.000.0.00,端口= 44935”【英文标题】:how to fix "SocketException: os error: connection timed out error no. 110, address = 000.000.0.00, port = 44935" in flutter 【发布时间】:2020-01-01 13:59:57 【问题描述】:

我正在创建一个用户输入详细信息的页面,用户输入详细信息后,它被插入 mysql 数据库,当我使用 php 表单检查代码时,代码工作正常,但在我完成编码后主文件,出现此错误。

未处理的异常:SocketException:操作系统错误:连接超时,errno = 110,地址 = 000..000.0.000,端口 = 44935

代替 localhost,我使用的是我的系统的 IP 地址。

import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:flutter/material.dart';
import 'Design.dart';
import 'dart:async';
//import 'dart:io';


class UsersProfile extends StatefulWidget 
  @override
  _UsersProfileState createState() => _UsersProfileState();


class _UsersProfileState extends State<UsersProfile> 

  //textediting controllers name, this is the name of textfield to pick up the data from each field.

  TextEditingController nameController = TextEditingController();  
  TextEditingController genderController = TextEditingController();
  TextEditingController ageController = TextEditingController();


  var isLoading = false;   // loader should be false in starting.

  String url = "http://LocalHost/flutter_include/insert.php";   // location of the query file

//this is the onpress function for raised button,
// where first we set the loading to true.

  _passValues() 
  setState(() 


    isLoading = true;
    sendform();

  );



Future<String> sendform() async

  Map data = 

    "first": nameController.text,
    "gender": genderController.text,
    "age": ageController.text
  ;
print(data);
  var result= json.encode(data);

   var resp = await http.post(url,
   headers: "content-type": "application/json; charset=utf-8",
   body: result);

   var finalResult = json.decode(resp.body);
  print(finalResult);
   setState(() 
    isLoading = false; 
   );




  @override
  Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(
        flexibleSpace: gradientAppBar(),
        title: Icon(Icons.book,
        color: Colors.white,
        ),
      ),
      body: Stack(
        children: <Widget>[
         //MyClipper(),

          Column(
            //mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Padding(
                padding: const EdgeInsets.all(30.0),
                child: TextField(
                  keyboardType: TextInputType.text,
                  controller: nameController,
                  decoration: InputDecoration(
                    hintText: 'Full Name',


                  ),
                ),
              ),
                Padding(
                padding: const EdgeInsets.all(30.0),
                child: TextField(
                  keyboardType: TextInputType.number,
                  controller: ageController,
                  decoration: InputDecoration(
                    hintText: 'Age',


                  ),
                ),
              ),
                Padding(
                padding: const EdgeInsets.all(30.0),
                child: TextField(
                  keyboardType: TextInputType.text,
                  controller: genderController,
                  decoration: InputDecoration(
                    hintText: 'Gender',


                  ),
                ),
              ),
              RaisedButton(
                onPressed: _passValues,
                child: Text('Save',
                style: TextStyle(
                  color: Colors.white,
                  fontWeight: FontWeight.bold,
                ),
                ),
                color: Colors.indigo,
              )
            ],
          )
        ],
      )
    );
  

【问题讨论】:

先检查URL String url = "LocalHost/flutter_include/insert.php"; localhost 有一个 H... 一些服务器区分大小写。 您是在 android 模拟器还是 ios 模拟器中测试您的应用程序?你试过在真实设备上运行它吗?当你运行你的 url “LocalHost/flutter_include/insert.php”时,它会显示 JSON 内容吗? 【参考方案1】:

您使用的端点可能不正确。确保您使用的 IP 地址也具有分配的端口,即http://192.168.1.100:1234/

【讨论】:

以上是关于如何修复颤振中的“SocketException:os错误:连接超时错误号110,地址= 000.000.0.00,端口= 44935”的主要内容,如果未能解决你的问题,请参考以下文章

颤振 - 未处理的异常:SocketException:

如何修复 java.net.SocketException:损坏的管道?

颤振:异常:SocketException:仅在iOS模拟器上连接失败

如何修复颤振中的“回复已提交的错误”?

SocketException:在 macOS 上使用颤振应用程序连接失败(操作系统错误:不允许操作,errno = 1)

双击按钮时如何修复颤振中的多个导航