Home | Blog | Software | Reviews and Features | Forum | Help | Donate | About us
topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • September 01, 2015, 11:14:34 AM
  • Proudly celebrating 10 years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: new software - dst  (Read 4349 times)

kobi7

  • Member
  • Joined in 2011
  • **
  • gravatar avatar
  • Posts: 19
    • View Profile
    • Donate to Member
new software - dst
« on: February 17, 2011, 02:06:16 AM »
okay, so this would be my second application listed here. I'm a (relatively) beginner programmer, and will use C# for this work.
I haven't finished the functional parts yet, about 50% there.

the deal is, I reached a barrier of software complexity, leading to slow advancement.
(btw, if you have suggestions how to deal with it, I'm all ears)

I am going to reorganize my code, possibly as dlls,
and post here very small increments of the gui, adding functionality bit by bit, once it's clean enough.
the basic design is pretty good, but the functioning design is lacking.
(anyone has recommendations how to approach a design phase in software? - this, I know almost nothing about)

so the first versions are going to be entirely fake ones. do nothing. (and won't even look like the real one)
the program is called DST, direct secure talk.
it will be a connection between 2 people.
then it will also be secure, communication will be encrypted. (with a feature that the keys change with increased bitsize every x minutes)
then it will add features like chat, and file transfer. (and possibly one more feature)
I see value in this program, for my own and my friends usage. it will be donationware/charity-ware. but I won't publish the source.

the plan is to post here all the versions, even those who'd do nothing, because it may help me with dedication and self discipline.
I also don't work on it full time, so there will be some time before releases.

anyway, hope you'll like this toy, and hoping it becomes mature.
I'm interested in seeing gui mockups too.

(you can use the excellent Caretta gui design studio: http://www.carettaso...dio_R36095_Setup.exe)

and lastly, please visit http://www.faluninfo.net
important information about persecution of innocent people - falun gong practitioners - in communist china.

thanks, Kobi


kobi7

  • Member
  • Joined in 2011
  • **
  • gravatar avatar
  • Posts: 19
    • View Profile
    • Donate to Member
Re: new software - dst
« Reply #1 on: February 17, 2011, 02:35:52 AM »
test gui, fake version.
D - no
S - no
T - no.

plans:
next version will have the tcp connector.
next+1 will have a server to connect to. (D yes)
next+2 will have a handshake protocol.

Ath

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 2,534
    • View Profile
    • Donate to Member
Re: new software - dst
« Reply #2 on: February 17, 2011, 02:48:54 AM »
Is this just for fun or are you trying to create another msn/skype/im platform with a new proprietary protocol?

kobi7

  • Member
  • Joined in 2011
  • **
  • gravatar avatar
  • Posts: 19
    • View Profile
    • Donate to Member
Re: new software - dst
« Reply #3 on: February 17, 2011, 03:37:02 AM »
no, the software will be restricted by design to a connection of two people, that is direct connection.
you can say it's for fun, it's a software project assignment I chose to do (college programming course).

kobi7

  • Member
  • Joined in 2011
  • **
  • gravatar avatar
  • Posts: 19
    • View Profile
    • Donate to Member
Re: new software - dst
« Reply #4 on: February 17, 2011, 12:04:25 PM »
a quick update, the organizing into dlls is a great success. reduced code size -> reduced complexity.
In another language I'm familiar with, the way to code is to start vocabularies (another name for libraries)
which have static functions (words) and public constructors, but do not have state. (maybe internally they have a private state to update between the words.)
the state remains in a few isolated places, in your own program, and there too it's pretty minimal.
So it's much easier to reason and see the picture when you split your code to functionality providing dlls, and the minimum active state and interacting with the user, that your program does.
following is cleanup, and enabling the gui to connect.

kobi7

  • Member
  • Joined in 2011
  • **
  • gravatar avatar
  • Posts: 19
    • View Profile
    • Donate to Member
Re: new software - dst
« Reply #5 on: February 19, 2011, 08:16:56 AM »
still no functionality, just a ui change for easier testing later.
maybe have a chance to finish the clean up today.

by the way, any of the programmers here know how to test network code? (too much state)
preferably unit testing it?

kobi7

  • Member
  • Joined in 2011
  • **
  • gravatar avatar
  • Posts: 19
    • View Profile
    • Donate to Member
Re: new software - dst
« Reply #6 on: February 20, 2011, 07:29:56 AM »
progress. still unusable. (but compiles and runs, and the cleanup is almost complete)

The server can wait for, and accept a connection.
the gui doesn't show much or give feedback (except for a bit of color)
the client does nothing at the moment, so you can't really connect to the server.

I haven't implemented shutting the port yet. (not hooked)

just a progress update.
soon things will start to get functional.
and after a bit of testing the gui will change to something usable.
« Last Edit: February 20, 2011, 11:53:30 AM by kobi7 »

Stoic Joker

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 5,878
    • View Profile
    • www.StoicJoker.com
    • Donate to Member
Re: new software - dst
« Reply #7 on: February 20, 2011, 08:08:35 AM »
This is a project I play with from time to time, It's a windows service that pings a listening app with info about the sending machines status. It's a bit crude but shows the basics of the back and forth socket handling stuff. It's written is pure Win32 API C++. Hopefully it may be helpful.


kobi7

  • Member
  • Joined in 2011
  • **
  • gravatar avatar
  • Posts: 19
    • View Profile
    • Donate to Member
Re: new software - dst
« Reply #8 on: February 21, 2011, 09:17:00 AM »
Thank you friend

kobi7

  • Member
  • Joined in 2011
  • **
  • gravatar avatar
  • Posts: 19
    • View Profile
    • Donate to Member
Re: new software - dst
« Reply #9 on: February 26, 2011, 09:26:16 AM »
Here's a newer version.
mainly reworked the handshaking protocol, which you don't yet see. (it's more elegant now)
visible features:
- The server can now open and shut a port.

the client still doesn't do anything.
Next is allowing a client to connect, then you can start playing / breaking.

enjoy, kobi

this week I hadn't much time to work on it.
when I did I mainly learned that debugging dlls is harder. (even though all code is available)
Anyone knows the way to do it? (right now I just copy my code over, and make slight changes)
I may add a logging utility.

kobi7

  • Member
  • Joined in 2011
  • **
  • gravatar avatar
  • Posts: 19
    • View Profile
    • Donate to Member
Re: new software - dst
« Reply #10 on: February 28, 2011, 06:14:39 AM »
pleased to release a new version.
changes:
the server now handles connections.
the client can now connect.

(if anyone reads this :-))
please if you find any thrown exceptions or crashes, let me know that I missed them.

known issues:
if server drops the connection, and reopens the port,
the client can no longer connect. ( will fix for next release )

STATUS: work in progress.

next in plan:
- some fixes.
- starting handshake.

next+1:
- verify that everything still runs, and state is reset, if handshake fails internally.
- add the various handshaking actions.
- check that all is ok when handshake fails deliberately (due to wrong password)
next+2:
- start integrating communicator. (secure mode)
- allow non-local ips, and different port.
- revamp ui from start to the real ui.
- hook all parts.

next+3:
- much ui goodness.
- log is usable
- status responders usable.
- chat usable.
    the software is usable, move status to beta. feedback from users.