クライアントからメッセージを受信する必要があるクライアント - サーバー アプリケーションがあります。これは、サーバーでリッスンを開始するコードです。
private void startListening(TcpListener lisener)
{
BackgroundWorker backgroundWorker = new BackgroundWorker();
backgroundWorker.WorkerReportsProgress = true;
backgroundWorker.DoWork += backgroundWorker_DoWork;
backgroundWorker.ProgressChanged += backgroundWorker_ProgressChanged;
backgroundWorker.RunWorkerCompleted += backgroundWorker_RunWorkerCompleted;
backgroundWorker.RunWorkerAsync();
}
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
string message = string.Empty;
_socket = _lisener.AcceptSocket();
connectionAcceptedEvent("Connection accepted from " + _socket.RemoteEndPoint);
byte[] b = new byte[100];
int k = _socket.Receive(b);
for (int i = 0; i < k; i++)
{
message += Convert.ToChar(b[i]); // Message from client
}
}
これは、サーバーがクライアントからのすべてのメッセージの受信を終了したときのイベントです。この時点で、メッセージ文字列を取得する必要があります。
private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
}