Author Topic: Need Suggestions for this Project  (Read 13153 times)

l33t-5h1t

  • The artist formerly known as Waldo
  • Jackass III
  • Posts: 149
  • Karma: +10/-0
Need Suggestions for this Project
« on: April 22, 2005, 10:52:12 AM »
I'm working on my final project in my VB class (yeah I know this is c++ but I'm gonna have to pull a RoD here). Basically I'm creating a replacement for the messenger service on xp. I already have plans for it to supply a gui as well as command line interface, lobby or direct chat, and a "game mode" where it outputs on an opengl platform so you can converse while in game (so you don't have to switch between windows just to chat). It will be for a LAN only environment. Basically, I'd like you guys to give me some feedback and suggestions so I can make this thing as feature rich as possible as I plan to use the program extensively when I'm done. Thanks.

joshdick

  • Math Mod
  • Jackass III
  • Posts: 160
  • Karma: +10/-0
    • http://www.xanga.com/joshdick13
Need Suggestions for this Project
« Reply #1 on: April 22, 2005, 10:55:53 AM »
Chat logging, file sharing.
:robot:

l33t-5h1t

  • The artist formerly known as Waldo
  • Jackass III
  • Posts: 149
  • Karma: +10/-0
Need Suggestions for this Project
« Reply #2 on: April 22, 2005, 11:58:35 AM »
cool, thanks, keep em coming


::edit::
actually, file sharing is kind of beating a dead horse, it's going to be LAN only so we already have windows file sharing for that. But chat logging would be good.

joshdick

  • Math Mod
  • Jackass III
  • Posts: 160
  • Karma: +10/-0
    • http://www.xanga.com/joshdick13
Need Suggestions for this Project
« Reply #3 on: April 22, 2005, 03:14:24 PM »
away messages
profiles
warning system
buddy icons
personalized font styles and colors
:robot:

l33t-5h1t

  • The artist formerly known as Waldo
  • Jackass III
  • Posts: 149
  • Karma: +10/-0
Need Suggestions for this Project
« Reply #4 on: April 22, 2005, 04:09:06 PM »
well see the thing is I don't want it too bloated, and those are (no offense) the kind of bloaty crap that aol likes to use...and they really wouldn't serve a purpose because this is just going to be for use in a local network, it's not meant for just chatting...I suppose I should have been more clear with its purpose. Basically, it's going to be for me and my buddy who do a lot of work on our networks (we just linked our lans up with wireless links) and also for everyone elses use during gaming because most games (like cs, ut, etc) only allow talking to teammates or like in cs if you die you can't continue to communicate with those who are alive. We use voice communication via ventrilo, but when we have teams split up sometimes you want to talk strategy and that's not a good idea when you're all in the same venrilo server....anyway, basically I'm not looking for frills, I'm looking for features that might help us out in regards to sed purposes.

BMJ

  • :O
  • Jackass I
  • Posts: 27
  • Karma: +10/-0
Need Suggestions for this Project
« Reply #5 on: April 25, 2005, 01:18:21 PM »
Make sure there is message confirmation. The lack of this is one aspect of AIM that pisses me off.

Perspective

  • badfish
  • Jackass In Charge
  • Posts: 4635
  • Karma: +64/-22
    • http://jeff.bagu.org
Need Suggestions for this Project
« Reply #6 on: April 25, 2005, 02:44:38 PM »
Quote from: BMJ
Make sure there is message confirmation. The lack of this is one aspect of AIM that pisses me off.


Actually, i would suggest against that (no offense BMJ :) ). The fact that its LAN only communication makes it unlikely you'll lose a packet/message.  Having a two-way handshake for each message adds a lot of otherwise unnecessary traffic.

On the other hand, the fact that its LAN means it should be pretty fast so extra traffic might not be a big deal.

Major_Small

  • Jackass IV
  • Posts: 317
  • Karma: +10/-0
    • http://www.johnshaoonline.com
Need Suggestions for this Project
« Reply #7 on: April 25, 2005, 04:39:16 PM »
Quote from: Perspective
Actually, i would suggest against that (no offense BMJ :) ). The fact that its LAN only communication makes it unlikely you'll lose a packet/message.  Having a two-way handshake for each message adds a lot of otherwise unnecessary traffic.

On the other hand, the fact that its LAN means it should be pretty fast so extra traffic might not be a big deal.

it sounds like a good idea on paper, but think about it this way - if there's a 50% chance of losing a packet on it's way from point A to B, isn't there also (about) the same chance of losing a reply-packet on it's way from point B to A?

in other words, how do you know you actually lost the message--maybe the message got through and the ACK was lost...

edit: something you may considering adding if you want the message to get there intact: a checksum.  create some kind of checksum with the message and attach it to the end.  at point B, the checksum is checked, the message is posted, and if there's a problem with the check, that's also posted.  that way the person at point B can notify point A if there's a problem.
Team Cprog Folding@Home: Team #43476
Download it Here
Detailed Stats Here
More Detailed Stats
51 Members so far, are YOU a member?
Current team score: 827850 (ranked 357 of 41389)

The CBoard team is doing better than [COLOR='#0000FF']99.13%[/COLOR] of the other teams
Top 5 Members: Xterria(331048), Bennet(64957), pianorain(56621), Codeplug(35842), JaWiB(34917)

Last Updated on: Mon, 28 Nov, 2005 @ 3:21 PM EST

l33t-5h1t

  • The artist formerly known as Waldo
  • Jackass III
  • Posts: 149
  • Karma: +10/-0
Need Suggestions for this Project
« Reply #8 on: April 26, 2005, 09:38:56 PM »
>>edit: something you may considering adding if you want the message to get there intact: a checksum. create some kind of checksum with the message and attach it to the end. at point B, the checksum is checked, the message is posted, and if there's a problem with the check, that's also posted. that way the person at point B can notify point A if there's a problem.<<

I do like that idea, however I'd disable that when in "game mode". Thanks for the suggestions, keep 'em coming because when I'm done i'm going to release it under the gpl (or similar) so make sure you get what you want :)

ygfperson

  • Founders
  • Posts: 601
  • Karma: +10/-1
    • Last.fm
Need Suggestions for this Project
« Reply #9 on: April 27, 2005, 01:43:13 AM »
Quote from: l33t-5h1t
cool, thanks, keep em coming


::edit::
actually, file sharing is kind of beating a dead horse, it's going to be LAN only so we already have windows file sharing for that. But chat logging would be good.

having an alternative to windows file sharing is always a good thing. samba sharing isn't the most reliable thing out there (by this i mean sometimes setting it up is a bitch, especially for just one file, and especially if you have to deal with a firewall.

//edit: not saying you need it, just saying it won't go to waste if you choose to implement it. especially if you plan on porting your program to other systems

l33t-5h1t

  • The artist formerly known as Waldo
  • Jackass III
  • Posts: 149
  • Karma: +10/-0
Need Suggestions for this Project
« Reply #10 on: April 29, 2005, 01:22:41 AM »
actually I got to thinking and realized that adding file sharing was a good idea because it's easier to send a single file than share the whole folder and unshare it when you're done. So that's in there, message sending/receiving and preference settings are all implemented. However I haven't instituted any kind of screenname system yet...which will be hard to do and would require a master server application which solely resolves screennames to ip addresses....if anyone has a good idea on how to do that be my guest ;). I'll keep you guys posted.

::edit::
nm, rich text boxes are the shit
« Last Edit: April 29, 2005, 02:02:07 AM by l33t-5h1t »

ygfperson

  • Founders
  • Posts: 601
  • Karma: +10/-1
    • Last.fm
Need Suggestions for this Project
« Reply #11 on: April 29, 2005, 05:13:14 AM »
a master server system isn't that hard... basically:
1) server receives packet from some ip that wants to be sent to dogcat_c
2) ip -> person_screenname, dogcat_c -> ip_2
3) send packet to dogcat_c with source = person_screenname

ip conversion is simply a map, and you're not talking about complex algorithms with a lan's worth of people. just make sure that one person can never find out another person's ip address.

(unless, of course, you want to do file sharing directly. in a lan, indirect file transfer isn't that big a slowdown, and it allows you to do so regardless of how many incoming ports are blocked on either of the client computers)

l33t-5h1t

  • The artist formerly known as Waldo
  • Jackass III
  • Posts: 149
  • Karma: +10/-0
Need Suggestions for this Project
« Reply #12 on: May 01, 2005, 06:02:53 AM »
well I did it a little differently, I've gotten a lot more comfortable with vb.net this last week or so and ended up making the master server program to go with the clients. However clients send directly to clients or to "everyone". the master server program receives a report from clients when they log on. This report is then added to the master buddy list. Everytime someone logs off or on the buddy list is sent out to all clients which is then stored in an array and represented in a listbox. The listbox shows the username which is then compared to it's corresponding ip address (using a structure) and the message is then sent directly to that ip address. I did that so the application can work across subnets as long as there's some sort of router somewhere. Here's version 1.0, no sound or game mode yet, no global hotkey or system tray either, but the meat of the app works (chat/filesharing/and a few undocumenteds....) The server can be run on the same pc as a client. Server needs tcp port 6667 and client needs tcp port 6666 open (sorry for you other irc users, i'll change it to a better set of ports later). Make sure to open up the config dialog (config button) when you first run it. Don't forget to leave the dll's in the same folder as programs (not sure if it will look for the dll in system32 or not).

Try and break it and tell me what happens.


PS:
the master server program is normally a windows service, but for everyone elses ease I made a port of it to a regular application.