private void OnConnectCallback(IAsyncResult iar) { try { Socket clientSocket = iar.AsyncState as Socket; clientSocket.EndConnect(iar); this.m_Socket = clientSocket; m_IsConnected = true; //Bắt đầu nhận dữ liệu ClientAsyncState asyncState = new ClientAsyncState(clientSocket); clientSocket.BeginReceive(asyncState.Buffer, 0, BufferSize, SocketFlags.None, OnReceiveCallback, asyncState); //Nem su kien RaiseConnectionOpenedEvent(new ConnectionOpenedEventArgs { IsSuccessful = true }); } catch { RaiseConnectionOpenedEvent(new ConnectionOpenedEventArgs { IsSuccessful = false }); } }
private static string ShortResponseInfo(ClientAsyncState state, Response response) { string s = String.Format("{0} bytes from {1} ({2}) in {3}ms: {4}", response.Data.Length, state.Server.ToString(), (state.Client as DnsUdpClient != null ? "UDP" : "TCP"), response.Timestamp.Subtract(state.Request.Timestamp).TotalMilliseconds, response.Header.RCODE.ToString() ); if (response.Header.AA) { s += " (authoritative)"; } return(s); }
private void OnReceiveCallback(IAsyncResult iar) { ClientAsyncState asyncState = iar.AsyncState as ClientAsyncState; Socket clientSocket = asyncState.ClientSocket; int readCount = clientSocket.EndReceive(iar); TcpHeaderFactory headerFactory = asyncState.HeaderFactory; headerFactory.PumpData(asyncState.Buffer, 0, readCount); string message; while (headerFactory.TryProcess(out message)) { OnReceiveMessage(message); } clientSocket.BeginReceive(asyncState.Buffer, 0, BufferSize, SocketFlags.None, OnReceiveCallback, asyncState); }
private void OnClientResponseReceived(IAsyncResult asyncResult) { try { ClientAsyncState state = (ClientAsyncState)asyncResult.AsyncState; Response response = state.Client.EndProcess(asyncResult); SetText(labelClientResponse, ShortResponseInfo(state, response)); StringBuilder result = new StringBuilder(); RenderResponse(response, result); SetText(textBoxClientResponse, result.ToString()); //textBoxClientResponse.Text = result.ToString(); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { Cursor = Cursors.Default; buttonClientSend.Enabled = true; } }
private static string ShortResponseInfo(ClientAsyncState state, Response response) { string s = String.Format("{0} bytes from {1} ({2}) in {3}ms: {4}", response.Data.Length, state.Server.ToString(), (state.Client as DnsUdpClient != null ? "UDP" : "TCP"), response.Timestamp.Subtract(state.Request.Timestamp).TotalMilliseconds, response.Header.RCODE.ToString() ); if (response.Header.AA) s += " (authoritative)"; return s; }