【发布时间】:2019-12-15 14:28:20
【问题描述】:
我尝试在 UWP 应用程序之间建立连接,一个是笔记本电脑上的客户端,第二个是带有 Windows Iot 的树莓派 3 型号 B 上的服务器,两个设备在同一个网络上。
我已在服务器应用程序上尝试过此代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading.Tasks;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace IOTServer
{
public sealed partial class MainPage : Page
{
Socket listenerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipEnd;
string hôte, iptest;
Task<System.Net.IPHostEntry> iphe;
public MainPage()
{
this.InitializeComponent();
hôte = Dns.GetHostName();
iphe = Dns.GetHostEntryAsync(hôte);
iptest = iphe.Result.AddressList[0].ToString();
ipEnd = new IPEndPoint(IPAddress.Parse("192.168.1.102"), 8888);
listenerSocket.NoDelay = true;
listenerSocket.Bind(ipEnd);
listenerSocket.Listen(0);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Socket clientSocket = listenerSocket.Accept();
Byte[] Buffer = new byte[clientSocket.SendBufferSize];
int readByte = clientSocket.Receive(Buffer);
tbData.Text += readByte.ToString() + Convert.ToChar(13);
}
}
}
这个客户端应用程序的代码:
using System.Net;
using System.Net.Sockets;
using System.Threading.Tasks;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace IOTClient
{
public sealed partial class MainPage : Page
{
Socket client= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipEnd;
string hôte, iptest;
Task<System.Net.IPHostEntry> iphe;
public MainPage()
{
this.InitializeComponent();
hôte = Dns.GetHostName();
iphe = Dns.GetHostEntryAsync(hôte);
iptest = iphe.Result.AddressList[0].ToString();
ipEnd = new IPEndPoint(IPAddress.Parse("192.168.1.102"), 8888);
}
private void BSend_Click(object sender, RoutedEventArgs e)
{
client.Connect(ipEnd);
client.Send(System.Text.Encoding.UTF8.GetBytes(tbSend.Text));
}
}
}
当我点击 bSend 按钮时,客户端应用程序崩溃并出现此异常错误:
Error message for the socket exception
这个我不懂,可以在命令行ping树莓派,直接从VS2017执行服务端应用到树莓派。
有人可以帮助我吗? 提前致谢。
请原谅我的英语,我是法国人;)
泰奥
【问题讨论】:
标签: c# sockets uwp iot windowsiot