Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Program Like ICQ...

Posted on 1998-12-10
6
Medium Priority
?
334 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
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 

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 80 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

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

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

Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
In this brief tutorial Pawel from AdRem Software explains how you can quickly find out which services are running on your network, or what are the IP addresses of servers responsible for each service. Software used is freeware NetCrunch Tools (https…
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…
Suggested Courses

721 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