Comments (3)
This has been brought up before as an afterthought in #4 (see the later comments) but the fix we attempted, while it worked, broke much more than it fixed so it was not progressed. See https://github.com/9swampy/Telnet/compare/feature/AddAsyncConnectAndDisconnectionCheck branch. I've since separated out the AsyncConnect on it's own branch and that's pending a merge but the Disconnect check needs a rethink. I'm happy to reconsider if you have any suggestions.
from telnet.
I read through and and came to the same conclusion. Handle it myself as every connection is unique.
On a side note, I used this on a server and LiteGuard would not load for some reason. I kept getting Could not load file or assembly 'LiteGuard, Version=0.10.0.0, Culture=neutral, PublicKeyToken=d38e0b7ae24b08a1' or one of its dependencies. The system cannot find the file specified.
It worked fine on my local PC.
You only used light guard on 1 line. I extracted out the code from light guard and replaced the line. Here it is is you want to drop your dependency on Light Guard.
/// <summary>
/// Initialises a new instance of the <see cref="Client"/> class.
/// </summary>
/// <param name="byteStream">The stream served by the host connected to.</param>
/// <param name="token">The cancellation token.</param>
/// <param name="timeout">The timeout to wait for initial successful connection to <cref>byteStream</cref>.</param>
public Client(IByteStream byteStream, CancellationToken token, TimeSpan timeout)
: base(byteStream, token)
{
if (byteStream == null)
{
throw new ArgumentNullException(
"byteStream", string.Format(CultureInfo.InvariantCulture, "{0} is null.", byteStream));
}
DateTime timeoutEnd = DateTime.Now.Add(timeout);
AutoResetEvent are = new AutoResetEvent(false);
while (!this.ByteStream.Connected && timeoutEnd > DateTime.Now)
{
are.WaitOne(2);
}
if (!this.ByteStream.Connected)
{
throw new InvalidOperationException("Unable to connect to the host.");
}
from telnet.
Replacing https://www.nuget.org/packages/LiteGuard/ with https://www.nuget.org/packages/LiteGuard.Source/ is the way I'll get around to at some point... should solve your issue though I do wonder what was wrong there.
As I also suggested on #4 if you've got a PR that would fix the issue without breaking existing functionality I'd be happy to try it out.
from telnet.
Related Issues (20)
- Weird response from server HOT 1
- LiteGuard dependency conflict HOT 7
- [Question] Added Telnet Server to main project HOT 2
- Console.write in TryLoginAsync intentional? HOT 3
- Particular Example Request HOT 1
- CancellationToken functionality at creating Client Instance HOT 1
- TryLoginAsync timeout HOT 1
- TryLoginAsync attempt 2 HOT 3
- Sending UTF-8 characters in XML file HOT 3
- Remove Console.Write() from TerminatedReadAsync HOT 2
- TelnetServer? HOT 2
- Guaranteed to Read all text when no terminated string and independently from timeout HOT 6
- Confusing use of Timeout HOT 1
- No stated dependency on Microsoft.VisualStudio.Threading, Version=17.3.0.0 HOT 6
- Update function TryLoginAsync with Regex terminator string HOT 1
- Client keeps disconnecting HOT 2
- Telnet Login HOT 1
- How to read UTF8 strings? HOT 2
- How to filter out remote echo of my commands HOT 1
- DONT/WONT case should read byte to the end of IAC
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from telnet.