Solved

Program Like ICQ...

Posted on 1998-12-10
6
332 Views
Last Modified: 2010-04-04
I am trying to make an app like ICQ.  Can someone give me some pointers on how to do this...
0
Comment
Question by:MichaelB98
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 4

Expert Comment

by:BoRiS
ID: 1350477
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
 
LVL 8

Expert Comment

by:ZifNab
ID: 1350478
Is an ICR example also good?
0
 
LVL 3

Expert Comment

by:williams2
ID: 1350479
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
[Live Webinar] The Cloud Skills Gap

As Cloud technologies come of age, business leaders grapple with the impact it has on their team's skills and the gap associated with the use of a cloud platform.

Join experts from 451 Research and Concerto Cloud Services on July 27th where we will examine fact and fiction.

 

Expert Comment

by:jerrypsl
ID: 1350480
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
 
LVL 1

Accepted Solution

by:
skatan187 earned 40 total points
ID: 1350481
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
 
LVL 3

Expert Comment

by:bryan7
ID: 2093427
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

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
There's a multitude of different network monitoring solutions out there, and you're probably wondering what makes NetCrunch so special. It's completely agentless, but does let you create an agent, if you desire. It offers powerful scalability …
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…
Suggested Courses
Course of the Month9 days, 15 hours left to enroll

623 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question