public void ReadCallback(IAsyncResult ar)
{
string content = string.Empty;
Socket handler = null;
try
{
StateObject state = ar.AsyncState as StateObject;
handler = state.workSocket;
int bytesRead = handler.EndReceive(ar);
if (bytesRead > 0)
{
string receive_data = (Encoding.ASCII.GetString(state.buffer, 0, bytesRead));
irocv.IROCV_Recv(receive_data);
byte[] bytes = irocv.IROCV_DATA;
string send_data = (Encoding.ASCII.GetString(bytes, 0, bytes.Length));
handler.Send(bytes);
Invoke((MethodInvoker)delegate
{
lbMSG_PC.Items.Add("Recv => " + receive_data);
if (lbMSG_PC.Items.Count > 50)
lbMSG_PC.Items.Clear();
lbMsg_IROCV.Items.Add("Send => " + send_data);
if (lbMsg_IROCV.Items.Count > 50)
lbMsg_IROCV.Items.Clear();
});
// Not all data received. Get more. *** 반드시 필요한 코드 ***
handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
new AsyncCallback(ReadCallback), state);
}
}
catch (Exception ex)
{
handler.Close();
handler.Dispose();
}
}
{
string content = string.Empty;
Socket handler = null;
try
{
StateObject state = ar.AsyncState as StateObject;
handler = state.workSocket;
int bytesRead = handler.EndReceive(ar);
if (bytesRead > 0)
{
string receive_data = (Encoding.ASCII.GetString(state.buffer, 0, bytesRead));
irocv.IROCV_Recv(receive_data);
byte[] bytes = irocv.IROCV_DATA;
string send_data = (Encoding.ASCII.GetString(bytes, 0, bytes.Length));
handler.Send(bytes);
Invoke((MethodInvoker)delegate
{
lbMSG_PC.Items.Add("Recv => " + receive_data);
if (lbMSG_PC.Items.Count > 50)
lbMSG_PC.Items.Clear();
lbMsg_IROCV.Items.Add("Send => " + send_data);
if (lbMsg_IROCV.Items.Count > 50)
lbMsg_IROCV.Items.Clear();
});
// Not all data received. Get more. *** 반드시 필요한 코드 ***
handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
new AsyncCallback(ReadCallback), state);
}
}
catch (Exception ex)
{
handler.Close();
handler.Dispose();
}
}
댓글