私は、Xamarinフォームpcl、またはtcpクライアントを搭載したwifiカード内蔵のAndroidデバイスを接続する必要があります。 実際に接続が行われ、書き込みが行われますが、私に戻ってくるデータは読み取れません。 私は通常シリアルで作業しますが、私はそれがTCP経由で読めないタイムアウトのためにはなりたくありません。Xamarin Forms PCLソケットプラグインがWi-Fiカードからデータを受信していません
誰も私に少しアドバイスを与えることができます、私は少し意味します。 私はこのプラグインを使ってXamarinがpclを使って接続しています。
他の解決策がある場合は、教えてください。私はSocketを直接使用したいと思っていましたが、Visual StudioにSystem.Net.Socketというライブラリを入れることはできません。
private async void testTCPSocketPlugin()
{
int port = 5555;
String ip = "192.168.222.1";
TcpSocketListener listener = new TcpSocketListener();
await listener.StartListeningAsync(5555);
listener.ConnectionReceived += Listener_ConnectionReceived;
try
{
await client.ConnectAsync(ip, port);
//listener.ConnectionReceived += async (sender, args) =>
//{
// var clientListener = args.SocketClient;
// var bytesRead = -1;
// var buf = new byte[1];
// while (bytesRead != 0)
// {
// bytesRead = await args.SocketClient.ReadStream.ReadAsync(buf, 0, 1);
// if (bytesRead > 0)
// {
// }
// //Debug.Write(buf[0]);
// }
//};
}
catch (Exception ex)
{
throw ex;
}
//byte[] array1 = null;
Byte[] dati = new Byte[8];
dati[0] = 1;
dati[1] = 8;
dati[2] = 0;
dati[3] = 0;
dati[4] = 0;
dati[5] = 0;
dati[6] = 0xe0;
dati[7] = 0x0b;
Byte[] fromBoard = new Byte[8];
try
{
await client.WriteStream.WriteAsync(dati, 0, 8);
client.ReadStream.ReadTimeout = 5000;
Stream str = client.ReadStream;
int testInt = await client.ReadStream.ReadAsync(fromBoard, 0, 8);
}
catch (Exception ex)
{
throw ex;
}
}
private void Listener_ConnectionReceived(object sender, Sockets.Plugin.Abstractions.TcpSocketListenerConnectEventArgs e)
{
String test = "break here";
}
あなたの指示に従ってコードを変更しようとしましたが、リスナーはこれまでと同じようには見えません。 解決する方法はありませんか? –
何も見えませんか?接続していないようですか?何も受け取っていないようですか?クライアントとサーバーのコードを入れ、問題をより明確にしてください。 – Gusman
それは読書を拾うことができないようですが、執筆と接続が動作します –