0

UDPポートでリッスンし、着信データをリストボックスに書き込むことになっている非常に単純なC#アプリがあります。全体は次のとおりです。

public partial class frmMain : Form
{
    UdpClient udpc = new UdpClient(44557);

    public frmMain()
    {
        InitializeComponent();
    }

    private void ReceiveCallback(IAsyncResult ar)
    {
        IPEndPoint ipep = null;
        var rcv = udpc.EndReceive(ar, ref ipep);
        string s = Encoding.ASCII.GetString(rcv);
        this.Invoke((Action)(()=>lsbLog.Items.Add(s)));
    }

    private void frmMain_Load(object sender, EventArgs e)
    {
        udpc.BeginReceive(new AsyncCallback(ReceiveCallback), udpc);
    }
}

最初のパケットを取得してログに記録しますが、それだけです。受信し続けるために「リセット」するにはどうすればよいですか?

4

1 に答える 1

1

各受信は で開始され、BeginReceiveで完了しEndReceiveます。BeginReceiveインバウンド データの受信を続行するには、最初の受信が完了した後に再度呼び出す必要があります。

ここで「受信した UDP パケットの処理」をチェックして、必要なパターンを確認してください。

于 2013-02-11T20:20:04.780 に答える