Android mono_W32 Socket_convert_错误:没有转换为(64)的winsock错误”;“计算机不在网络上”;
我需要通过手机/WiFi控制我的应用程序网络 所以我关注这篇文章 但当我试着打开WiFi时。让wifi成为我的主要网络 然后我试着做一些沟通。应用程序崩溃的可能性很高(90%) 我怎样才能避免呢 谢谢大家! 这是我的密码Android mono_W32 Socket_convert_错误:没有转换为(64)的winsock错误”;“计算机不在网络上”;,android,sockets,xamarin,xamarin.forms,Android,Sockets,Xamarin,Xamarin.forms,我需要通过手机/WiFi控制我的应用程序网络 所以我关注这篇文章 但当我试着打开WiFi时。让wifi成为我的主要网络 然后我试着做一些沟通。应用程序崩溃的可能性很高(90%) 我怎样才能避免呢 谢谢大家! 这是我的密码 public void SomeFunction() { await ForceWifiOverCellular(); try { app_connection_request app_connection_request = ne
public void SomeFunction()
{
await ForceWifiOverCellular();
try
{
app_connection_request app_connection_request = new app_connection_request
{
url = "app_con_req",
request = mode,
};
Settings.Log_Item_Scan += "91/n";
// Serialize our concrete class into a JSON String
var stringPayload = await Task.Run(() => JsonConvert.SerializeObject(app_connection_request));
// Wrap our JSON inside a StringContent which then can be used by the HttpClient class
var httpContent = new StringContent(stringPayload, Encoding.UTF8, "application/json");
var myHttpClient = new HttpClient()
{
Timeout = TimeSpan.FromSeconds(15)
};
Settings.Log_Item_Scan += "92/n"; //Crash at here
var resp = await myHttpClient.PostAsync(URL, httpContent);
Settings.Log_Item_Scan += "93/n";
if (resp.IsSuccessStatusCode)
{
Settings.Log_Item_Scan += "94/n";
var json = await resp.Content.ReadAsStringAsync();
Settings.Log_Item_Scan += "95/n";
var result = JsonConvert.DeserializeObject<RS485_Info>(resp.Content.ReadAsStringAsync().Result);
{
return 0;
}
}
return -1;
}
catch (Exception e)
{
Settings.Log_Item_Scan += "96/n";
return -1;
}
}
public async static Task<int> ForceWifiOverCellular()
{
await WiFi_Control_Center.Set_WiFI_Enable(true); //This code is to turn on wifi
await Task.Delay(TimeSpan.FromSeconds(2));
ConnectivityManager connection_manager = (ConnectivityManager)_context.GetSystemService(Context.ConnectivityService);
NetworkRequest.Builder request = new NetworkRequest.Builder();
request.AddTransportType(TransportType.Wifi);
var callback = new ConnectivityManager.NetworkCallback();
connection_manager.RegisterNetworkCallback(request.Build(), new CustomNetworkAvailableCallBack());
await Task.Delay(TimeSpan.FromSeconds(2));
return 0;
}
public static async Task Set_WiFI_Enable(bool enabled)
{
try
{
WifiManager Temp_WiFi = (WifiManager)Android.App.Application.Context.GetSystemService(Context.WifiService);
Temp_WiFi.SetWifiEnabled(enabled);
await Task.Delay(1000);
}
catch
{
}
}
public函数()
{
等待力为超细胞();
尝试
{
应用程序连接请求应用程序连接请求=新应用程序连接请求
{
url=“app\u con\u req”,
请求=模式,
};
Settings.Log_Item_Scan+=“91/n”;
//将我们的具体类序列化为JSON字符串
var stringPayload=wait Task.Run(()=>JsonConvert.SerializeObject(应用程序连接请求));
//将JSON封装在StringContent中,然后HttpClient类可以使用它
var httpContent=newstringcontent(stringPayload,Encoding.UTF8,“application/json”);
var myHttpClient=newhttpclient()
{
超时=TimeSpan.FromSeconds(15)
};
Settings.Log\u Item\u Scan+=“92/n”//此处崩溃
var resp=wait myHttpClient.PostAsync(URL,httpContent);
Settings.Log_Item_Scan+=“93/n”;
if(分别为IsSuccessStatusCode)
{
Settings.Log_Item_Scan+=“94/n”;
var json=await resp.Content.ReadAsStringAsync();
Settings.Log_Item_Scan+=“95/n”;
var result=JsonConvert.DeserializeObject(resp.Content.ReadAsStringAsync().result);
{
返回0;
}
}
返回-1;
}
捕获(例外e)
{
Settings.Log_Item_Scan+=“96/n”;
返回-1;
}
}
公共异步静态任务ForceWifiOverCellular()
{
等待WiFi\u控制\u中心。设置\u WiFi\u启用(true);//此代码用于打开WiFi
等待任务延迟(时间跨度从秒(2));
ConnectivityManager connection_manager=(ConnectivityManager)_context.GetSystemService(context.ConnectivityService);
NetworkRequest.Builder request=新建NetworkRequest.Builder();
request.AddTransportType(TransportType.Wifi);
var callback=new ConnectivityManager.NetworkCallback();
connection_manager.RegisterNetworkCallback(request.Build(),new CustomNetworkAvailableCallBack());
等待任务延迟(时间跨度从秒(2));
返回0;
}
公共静态异步任务集\u WiFI\u启用(bool启用)
{
尝试
{
WifiManager Temp_WiFi=(WifiManager)Android.App.Application.Context.GetSystemService(Context.WifiService);
温度无线网络设置已启用(已启用);
等待任务。延迟(1000);
}
抓住
{
}
}
这是一些日志
06-12 20:47:25.355 D/单声道(14255):总成
System.Reflection.Primitives[0xad468660]添加到域根域,
参考计数=106-12 20:47:25.356 D/单声道(14255):AOT:图像
未找到“System.Reflection.Primitives.dll.so”:dlopen失败:
图书馆
“/data/app/com.mydeltasolar\u 1\u 0\u 1.app-uRHsm2P\ufnlpqc6axjtda==/lib/arm/libaot System.Reflection.Primitives.dll.so”
找不到06-12 20:47:25.356 D/单声道(14255):AOT:图像
“/Users/builder/jenkins/workspace/xamarin-android-d15-9/xamarin-android/external/mono/sdks/out/android-armeabi-v7a-release/lib/mono/aot cache/arm/System.Reflection.Primitives.dll.so”
未找到:dlopen失败:库
“/data/app/com.mydeltasolar\u 1\u 0\u 1.app-uRHsm2P\ufnlpqc6axjtda==/lib/arm/libaot System.Reflection.Primitives.dll.so”
找不到06-12 20:47:25.356 D/Mono(14255):配置正在尝试
解析:“System.Reflection.Primitives.dll.config”。06-12 20:47:25.356
D/Mono(14255):试图解析的配置:
“/Users/builder/jenkins/workspace/xamarin-android-d15-9/xamarin-android/external/mono/sdks/out/android-armeabi-v7a-release/etc/mono/assemblies/System.Reflection.Primitives/System.Reflection.Primitives.config”。
06-12 20:47:25.356 D/Mono(14255):装配参考添加参考
Newtonsoft.Json[0xed1995c0]->
系统反射原语[0xad468660]:206-12 20:47:25.357 D/单声道
(14255):Assembly Ref addref System.Reflection.Primitives[0xad468660]
->mscorlib[0xed1991a0]:91加载的程序集:System.Reflection.Primitives.dll[External]Xamarin.Android返回
没有定制的HttpClientHandler。拖欠
System.Net.Http.HttpClientHandler 06-12 20:47:25.502
I/mono stdout(14255):Xamarin.Android没有返回自定义
HttpClientHandler。默认为System.Net.Http.HttpClientHandler
06-12 20:47:25.519 F/(14255):单声道W32时钟转换错误:否
(64)“计算机不在计算机上”的转换为winsock错误
网络“06-12 20:47:25.534 D/连接管理器(14255):
setProcessDefaultNetwork CallingUid:10532,CallingPid:14255 06-12
20:47:25.534 D/ConnectivityManager_URSP(14255):香港被列入黑名单-
假06-12 20:47:26.090 F/libc(14255):致命信号6(SIGABRT),
代码-6(SI_TKILL)在tid 14362(线程池工作)中,pid 14255
(solar_1_0_1.app)06-12 20:47:27.252 D/InputMethodManager(14255):
HSIFW-标志:0 Pid:14255
如果你注释掉你的ForceWifiOverCellular函数,你还看到崩溃吗?您还可以分享您的Android构建项目选项,特别是关于正在使用的HTTPClientHandler的部分吗?URL是否以https或http开头?如果您注释掉了ForceWifiOvercell函数,您是否仍然看到崩溃?您还可以分享您的Android构建项目选项,特别是关于正在使用的HTTPClientHandler的部分吗?URL是否以https或http开头?