Laurcons

Laurentiu Pricop

TCPChatterGUI

I was playing around with TCP networking features on .NET, and seeing that all my prototypes for communication through TCP worked, I decided to give a shot creating a fully-fledged TCP Chat program.


Published: 2018-07-23
Versions and Links
1.0 (b85): ZIP(2018-07-23)
1.1 (b128): ZIP(2018-07-24)
This is a 7-year old project ported from my old ucoz.org site.
It's already history, and the Young Me who wrote this has grown a lot since then.
Please take everything you read here with a grain of salt (and maybe some humor).

I was playing around with TCP networking features on .NET, and seeing that all my prototypes for communication through TCP worked, I decided to give a shot creating a fully-fledged TCP Chat program.

It all started with two console projects that I played around with, and I learned how the TCP system is implemented in C#, and how to use it. It's not that hard, but I had to figure out the kinks and quirks of it. Then (deciding not to overrate my abilites (and laziness)) I created a small console chat program, which can act as both a host and a client, one connecting to the other. And then you chat! And it worked! Sure, I hadn't implemented any form of error-checking or validation, but it worked!

I kept a friend of mine up to date with this, and due to poor feedback that I received regarding the console app, (and because I wanted to) I decided to go big with it and make a fully-fledged Windows Forms application.

Now that was not easy nor particularily hard, I just had to dive a bit in the hell of multi-threaded code... But it works! I've worked on it a little bit more, adding some additional features among with proper error-checking and exception-handling.

It's not much, but I am so proud of it that this could well be my favourite program to date.

Features

  • Requires manual port forwarding (for hosts).
  • All data is sent in plain text across the Internet, although there is no one who would have any reason to hack the connection. Use it without fear, but do not plan on destroying E Corp with it.
  • Customizable chat window (colors and font).
  • Customizable port, default port 14.
  • Now this is a new feature for me that I haven't ever implemented on anything, but the window(s) is(are) fully resizable, and the controls scale accordingly! (only the main window supports resizing)

Known issues

  • Requires manual port forwarding (for hosts).
  • I haven't experience crashes when resizing the windows, although they can be resized to very, very unnatural sizes. So if it crashes, that's why.
  • The plain text thing ^^

Port Forwarding alternative

I found this nice utility on the internet which uses UPnP to create port forwarding entries. I did try to implement the functionality into my program, but it didn't work so I abandoned the idea. For the time being.

Its license allows me (doesn't prohibit) to post it here, and because it uses an unnecessary installer I will post only the zipped exe file: UPnP Wizard License Readme by XLDevelopment

The app has a console mode so I could use that. Hmm.

Images

First version v1.0

Downloads

You need a Windows PC with the .NET Framework 4.6.2 or higher to be able to run this.

(displayed in Versions card)

Source code

I do not use any versioning system. But I've now decided to .zip the source code for every new version that I release. So here is a list with all the released versions' source code.

Licensed under Creative Commons Attribution 4.0 license.

(displayed in Versions card)

Development status

I will not update projects' development status anymore. You can see the evolution from the release dates.