private void ReceiveCallback(IAsyncResult ar) { try { int receied = _clientSocket.EndReceive(ar); if (receied == 0) { _serverSocket.BeginAccept(new AsyncCallback(AcceptCallBack), null); return; } Array.Resize(ref buffer, receied); string text = Encoding.ASCII.GetString(buffer); _ta.Insert(text, DateTime.Now); buffer = new byte[_clientSocket.ReceiveBufferSize * 100]; _clientSocket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, ReceiveCallback, null); } catch (Exception ex) { Console.WriteLine(ex.Message); buffer = new byte[_clientSocket.ReceiveBufferSize * 100]; _clientSocket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, ReceiveCallback, null); } }
public void RecieveCallBack(IAsyncResult ar) { try { Socket socket = ar.AsyncState as Socket; if (socket != null) { SocketError sockErr; int received = socket.EndReceive(ar, out sockErr); if (sockErr != SocketError.Success) { received = 0; } if (received > 0) { // _buffer = new byte[received]; //byte[] dataBuff = new byte[received]; //Array.Copy(_buffer, dataBuff, received); Array.Resize(ref Buffer, received); var text = Encoding.ASCII.GetString(Buffer); _ta.Insert(text, DateTime.Now); //Array.Clear(_buffer, 0, _buffer.Length); //Array.Clear(dataBuff, 0, dataBuff.Length); socket.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, new AsyncCallback(RecieveCallBack), socket); ServerSocket.BeginAccept(AcceptCallBack, null); } } } catch (SocketException ex) { Console.WriteLine(@"SocketException RecieveCallBack Err: " + ex.Message); } }
public void RecieveCallBack(IAsyncResult ar) { try { Socket socket = ar.AsyncState as Socket; SocketError sockErr; if (socket != null) { int received = socket.EndReceive(ar, out sockErr); if (sockErr != SocketError.Success) { received = 0; } if (received > 0) { byte[] dataBuff = new byte[received]; Array.Copy(Buffer, dataBuff, received); _text = Encoding.ASCII.GetString(dataBuff, 0, dataBuff.Length); //dump text into received data table _ta.Insert(_text, DateTime.Now); socket.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, RecieveCallBack, socket); ServerSocket.BeginAccept(AcceptCallBack, null); } } } catch (SocketException ex) { Console.WriteLine(@"SocketException RecieveCallBack Err: " + ex.Message); Socket socket = ar.AsyncState as Socket; socket?.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, RecieveCallBack, socket); ServerSocket.BeginAccept(AcceptCallBack, null); } }
private void ReceivedCallBack(IAsyncResult ar) { try { Socket clientSocket = (Socket)ar.AsyncState; // This is how you can determine whether a socket is still connected. bool blockingState = clientSocket.Blocking; Console.WriteLine("In ReceivedCallBack..."); try { SocketError se; int bufferSize = clientSocket.EndReceive(ar, out se); Console.WriteLine("buffer size: " + bufferSize.ToString()); if (se != SocketError.Success) { Console.WriteLine("Connection not successfull..."); } else if (se == SocketError.ConnectionRefused) { Console.WriteLine("Connection refused..."); } else if (se == SocketError.Disconnecting) { var clientIp = clientSocket.RemoteEndPoint.ToString(); Console.WriteLine(clientIp + " Disconnecting..."); } else { if (bufferSize > 0) { var clientIp = clientSocket.RemoteEndPoint.ToString(); Console.WriteLine(clientIp + " Connection established..."); Array.Resize(ref _buffer, bufferSize); //handle packet string text = Encoding.ASCII.GetString(_buffer); if (text != String.Empty || text.Length > 0) { _ta.Insert(text, DateTime.Now); } //begin listen again _buffer = new byte[1024 * 5]; clientSocket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, ReceivedCallBack, clientSocket); } } } catch (SocketException e) { // 10035 == WSAEWOULDBLOCK if (e.NativeErrorCode.Equals(10035)) { Console.WriteLine("ReceivedCallBack : Still Connected, but the Send would block"); } else { Console.WriteLine("ReceivedCallBack : Disconnected: error code {0}!", e.NativeErrorCode); } } finally { clientSocket.Blocking = blockingState; } } catch (Exception ex) { Console.WriteLine("ReceivedCallBack err : " + ex.Message); } }