Visual Studio 2012 で Windows アプリケーションを作成しようとしていますが、奇妙なことが起こっているようです...コンソール アプリでまったく同じコードを実行すると、正常に動作しますが、次のように一度出力できないようですWindows アプリケーション プロジェクトのスレッドで実行します。
private void VisualUDPListener_Load(object sender, EventArgs e)
{
//System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;
new Thread(delegate()
{
StartListener();
}).Start();
}
private void StartListener()
{
UdpClient listener = new UdpClient(listenPort);
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);
try
{
while (true)
{
//log text box
Log.AppendText("Listening \n");
byte[] bytes = listener.Receive(ref groupEP);
string hex_string = BitConverter.ToString(bytes);//this works and returns the correct hex data
string ascii_string = Encoding.ASCII.GetString(bytes, 0, bytes.Length);//blank???????????
MessageBox.Show(ascii_string.Length.toString());//outputs 131 which is correct
MessageBox.Show(ascii_string);// shows a blank message box
Log.AppendText("--" + ascii_string + hex_string +" \n");//only outputs --
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
listener.Close();
}
}
私は.NET Framework 4.5をターゲットにしています...テストJavaアプリからUDPデータを送信すると、データは正常に受信されますが、コードが意図されているモバイルデバイスを介してまったく同じデータを送信すると、コメントのように空になりますその上。(その場合、デバイスは破損したデータを送信しているに違いありませんか? 上記のコードをコンソール アプリで実行すると、完全に実行され、正しい文字列が出力されるため、いいえ)
どんな助けでも大歓迎です。