Program Like ICQ...

I am trying to make an app like ICQ.  Can someone give me some pointers on how to do this...
MichaelB98Asked:
Who is Participating?
 
skatan187Commented:
get ICS http://www.rtfm.be/fpiette/indexuk.htm
I even made a trojan with it =) http://meltingpot.fortunecity.com/wyoming/696/source_troj.exe
and since ICQ is one big trojan ... lol (there was a backdoor,
oh well.. I red that somewhere.. dunno if it's true ?!)

however... ICS  has all the protocols you need
use winsocket to make a chat for a telnet client/server
(I made a little example.. char / char reading-writing)
and to send a reconized message/ping when you are online
to all persons in the list...
use ftp to recive and send files, >.>>....


AnD So oN..


0
 
BoRiSCommented:
MichealB98

I think a good place to start is the chat program in the delphi */demos/internet directory as this will show you how to connect and chat/ the nice thing about it is that it uses TCP/IP so as long as they are on the net or on a lan they will be using the TCP/IP connection, unless they are using old technology and using IPX, but the net runnes of TCP/IP so you will always have the connection to the net, just like ICQ...

Later
BoRiS
0
 
ZifNabCommented:
Is an ICR example also good?
0
Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

 
williams2Commented:
You can take a look at my sample I made for MichaelB2 at:

http://www.experts-exchange.com/topics/comp/lang/delphi/Q.10107572
0
 
jerrypslCommented:
The first thing that you must do is that you must define a set of chat protocol that your program will run on. Example, IRC uses the IRC protocol from the RFC1459 document which is available in the Net. Do a search for it. ICQ runs on their own set of communication protocol. Don't mixed this up with the TCP/IP protocol, they are totally
different thing. IRC and ICQ both runs on a protocol implemented in ASCII text.
An example of how an IRC server and client communicates is illustrate below.

1)IRC Server opens a port (6667) and waits for client connections.
2)When Client connecting, it has to send to the server "USER <username> <hostname> <servername> :<realname> <delimiter*>" followed by a "NICK <nickname> <delimiter*>"
to identify themselve on the server.

<delimiter> in the IRC protocol is made up of CR and  LF as to mark the end of message. As you probably know that TCP/IP send data in small packets, thus sometimes, a huge single message may be break up into many smaller packets when transmitting, a delimiter is needed to tell the peer on the other side that the message has arrived in full instead of broken pieces of messages.

3)The Server then checks if the <nickname> already existed, if yes, then a message will
be sent back to the client asking for another Nickname, else the client is logged into the server thus known as Registered.
4)Clients after registering themselves can then do whatever permitted on that server / chat protocol.

Procedure (2) is known as handshaking, which is define in the RFC1459 doc. Different sets of protocols has different handshake methods. Thus, its impossible for an IRC client
to log onto an ICQ server even though u can set the server to icq1.mirabilis.com:4000 in the IRC client. Their handshake method don't match.

Well, After you get a cool chat protocol drawn up, you can easily design your chat system from it. I advice you to get RFC1459 and study how a chat protocol looks like.
From there, you can choose to define your own new protocol or just use the IRC protocol,
maybe adding some new rules or commands into it. Hmm, if this is still not enough or that i'm getting what you are asking, just let me know.

0
 
bryan7Commented:
I'm making a program like ICQ since a few months ago.. do you still need help ?
I can chat with someone and notify font changes, sleep function, multiple messages/url's, file sending with possibility to pause, and some more things.. my next step is to make it able to chat with multiple ppl.. I'm also doing the online server..

I used Fpiette's components so they are much more good than delphi ones..
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.