Jump to content
Sign in to follow this  
themax90

**NEW** Instant Messenger

Recommended Posts

themax90

I am finally done with the Instant Messenger. Currently it's only in command line, but has a nice GUI login script. There are no servers and people chat with no intermediary.

Download The Stand Alone Exe:

http://www.autoitscript.com/fileman/users/public/Agent%20Smith/mchat.exe

Download The Readme:

http://www.autoitscript.com/fileman/users/public/Agent%20Smith/readme.txt

Readme File:

Application: MChat.exe
Brief Description: Stand Alone Chat Program
Coding In:
Core.exe in C++(general)
MChat.exe in Autoit v3.0.133
Icon.ico originated in gif format
Description:
This is a very basic chat messenger that currently supports 1 on 1 chatting.
Core.exe is coded in C++ and is a command line program.
MChat.exe is the graphic user interface used to login.

To Setup:
The first input box is the ip address of the person you wish to chat with.
The second box is the port that you will be sending your info on. This is the person you are chatting withs listening port.
The third box is your listening port.

What happens:
The Icon file and the core file are installed to the script directory and ran from there.
The actual chat client is a command line program, but the GUI logs you in.
When you quit either program the installed files are deleted, thus stand alone.

Understanding the Command Line:
When you start the command line it will tell you who you are connected to, what port you are sending to, and what port you are listening to.
It will also give you the exit hotkey. Once it says ready, type in ANYTHING you wish and hit enter. If the person you are connected to...
...is listening on that port and everything is valid, they will receive the message. When you receive a message it will follow a >>.

Example Command Line:
Initializing Connection.......
Connected To 127.0.0.1 On Port 1
You are listening on port 1
Chat ready!
Press <Ctrl-C> to exit

Are you here myself?
>> Are you here myself?
Yes
>> Yes

Example Command Line 2:
Person 1:
Initializing Connection.......
Connected To 127.0.0.1 On Port 1
You are listening on port 2
Chat ready!
Press <Ctrl-C> to exit

Are you here?
>> Yes (Received from 127.0.0.1 on port 2 {This wont actually appear})
Cool
>> Well I am gonna go
Cya!
Ctrl-C Pressed, Connection Severed.

Person 2:
Initializing Connection.......
Connected To 127.0.0.1 On Port 2
You are listening on port 1
Chat ready!
Press <Ctrl-C> to exit

>> Are you here myself? (Received from 127.0.0.1 on port 1 {This wont actually appear})
Yes
>> Cool
Well I am gonna go
>> Cya!
Ctrl-C Pressed, Connection Severed.

If you receive a message it will be >> (message).

Currently this only supports output to one person, but you can receive input from SEVERAL people.
Output to multiple people will be included in later versions. Also, currently you cannot decipher IF several
people are sending you a message. I am aware of this and in a later version it will be implemented.

I appreciate all comments and bug reports. I am open to constructive criticism and light flames when nesscessary, yes please! Because this is a release of a project net yet coded by anyone on this forum I know I will NOT be releasing the C++ source or the AutoIt source code. If you would like to buy the intellectual properties to it and the complete source code and all of the program rights(I very much doubt anyone will, and I guess I can say it's kinda a joke) then email me at l.m.valley@comcast.net

I hope you all enjoy this program. If you would like to chat with me on it, just pm me. Give a rating if you'd like, I give it a 6/10 because it's ont as fancy as others and could be better. What do you all think?

http://www.autoitscript.com/fileman/users/public/Agent%20Smith/

http://www.autoitscript.com/fileman/users/public/Agent%20Smith/mchat.htm

Agent Smith

P.S.(To Jon) I think I should be given a self defined thing below the avatar. Something like IM Creator or something like that, I know it most likely won't happen and I am not asking, I just would like it.

To all others using program:

If you are chatting with a person THEY must have this program opened also, with your ip as the destination ip, and your listening port as there sending port and Vice Versa. Also, when someone exits, you wont know it unless thye tell you they are leaving. A user office function is to be implemented later, I could do it in a few minutes with the AutoIt Ping function but I dont feel like it. It's on the ToDo list.

Edited by Agent Smith

Share this post


Link to post
Share on other sites
themax90

Update!!!

Removed, Check Webpage

Updates:
Checks to see if connection was severed or not. If person is no longer avialible or has had an error, closes chat, prompts user and clears GUI data and brings GUI back.

ToDo:
If person has closed prompt on other side then notify user of that.
Edited by Agent Smith

Share this post


Link to post
Share on other sites
sykes

P.S.(To Jon) I think I should be given a self defined thing below the avatar. Something like IM Creator or something like that, I know it most likely won't happen and I am not asking, I just would like it.

<{POST_SNAPBACK}>

*Hint* Get above 300 posts and you can put whatever you want under your avatar

We have enough youth. How about a fountain of SMART?

Share this post


Link to post
Share on other sites
themax90

To Skyes : I know, but I think untill I get there I should have a custom one, whatever.

Update:
Unlimited number of open/close functions. *
* = This means that once u connect to someone and you close it, the old program would not continue the old loops, this has been fixed.
If nothing is entered into one of the fields then prompts user.
Advanced host connection loss.

Todo:
Notify client if recipent has disconnected.
Resize GUI to look better
Instant Messenger #2 ~ Full GUI (maybe in a few weeks)

Would anyone like to schuedule a chat with me, it would be awesome!!! How about you skyes???

Ok seeming how no one has posted besides sykes, Yall test it and Gimme a Holler is you want me to Bring Th' Noise and continue on with updates and version 2. I personally was thrilled when I finished it. Hopefully people will be as excited as I am. I am dedicated this project to the forums and the creators of autoit, while the source and intellectual property rights are still open for sale, I am only releasing Beta and updates to these forums. Eventually I will create a Gold edition which anonymous people will have the Basic version and unless they want to pay or they are a developer at the forum, will not get the Gold version which all you will get(and only respected developers, not people that had just registered to get it)

So I want to hear it!!! Do yall want me to continue this project, or should I chuck it in the river as seemed has happened with all my scripts. The FTP functions so far have been shunned. MemStat was a 2 day operation. QuickE SMTP was so controversial that I didn't really get anything out of it. Update to The Original 1337, no one really cares. Only FFC has been given credit. I really hope this project doesn't get hucked in the river, I have been working on this for longer then FFC in command line edition and it wasn't till now that ALL the errors were fixed and I could create a GUI for it. Ok I am talking to much.

Agent Smith

Edited by Agent Smith

Share this post


Link to post
Share on other sites
Nova

I know, but I think untill I get there I should have a custom one, whatever.

I think your missing the point of the post count system :idiot:

You may think you deserve a custom title,but you dont becasue if you did you would have one, but you are very intitled to your opinion :">

If you get one its not really fair on everyone else that hast to follow the rules and wait in line, now is it.

Share this post


Link to post
Share on other sites
themax90

Yeah nova, I understand that. I will wait till I get 300 posts. I know it would be unfair. Just a suggestion. :idiot:

Share this post


Link to post
Share on other sites
layer

you should make it like AIM, where im pretty sure that it automatically gets teh ip's... i dont know how, but it hink that's how teh do it... pretty neat though

other then that though, i like it! i just don't know anybody's ip, ill jusst get my cusins, how do you get teh port? :idiot::D

Edited by layer

FootbaG

Share this post


Link to post
Share on other sites
themax90

You can use any port, from port 1 to port 32786.

Hey would you like to chat with me?

Also It's gonna be a GUI featured client soon, thats gonna be in Instant Messenger #2.

Pm me for my ip.

Share this post


Link to post
Share on other sites
themax90

New excutable updated, we cannot ping people for there connections otherwise firewalls get intha way.

Update:
Removed ping'ing to verify connection.

Todo:Gui Send (apparently sending while typing sucks, it over rights shit)
Edited by Agent Smith

Share this post


Link to post
Share on other sites
themax90

For continuous GUI loop to re connect chat

Changed, The MChat 2 has errors and since the loop is resolved, just use the first one.

All those who are skeptical, ask Guidosoft or Freakky, I have chatted with them it works!!

Edited by Agent Smith

Share this post


Link to post
Share on other sites
Guest Guidosoft

IT's COOL!

Hey, layer is beating me. He got 400 posts. WTF.

Edited by Guidosoft

Share this post


Link to post
Share on other sites
themax90

Ok everyone, I am working on the design for the next update( version 1.5 ) Here is the screenshot for the new "Send" Message desgin. Please don't ask questions, it will all be answered at the release with the documentation file.

Picture Removed

Edited by Agent Smith

Share this post


Link to post
Share on other sites
b14ck

This could have been coded a lot easier in Java. Actually, I was just looking through some of my old /dev/dumped files and I still have my old Java chat server available. Don't you just love listening through sockets? Ahhh what a high!


-I am the giver of life and the bringer of death.

Share this post


Link to post
Share on other sites
themax90

***MAJOR UPDATE***

I have now built a new send message sub excutable to handle typing in the cmd window that way it's not all buggy. Next step, reading the stuff from the window and putting it all into GUI. This is considered version 1.0.106.

Whenever you open a connection to someone to chat, it removes the MChat Connection Center(main) and brings up the sub excutable Send. This will handle all you typing. You still must look in the CMD window for the >>'s for replies. That will be worked out later. Also the while loops are fixed.

You may use ANY port but you must be connected to another person. For example put in 127.0.0.1 for the ip address and 150 for the destination port and listening port. And you can talk to yourself.

Destination Ip:Person's IP that you are chatting with.

Destination Port:Person's your chatting with's listening port

Listening Port:Your port.

Any port 1 to 37896 will work. Enjoy!!!

ToDo:
Ip verification
Full GUI(no command line needed{hides core.exe})
Installation Program(for later versions)
Definition files to specificy Ip's as people and plug this into reply for Multi Thread use
(VERSION TWO) ~ Multi Person chat(like IRC) aka multi thread client{Warning, I do not know if I will do this!!!  It may be way to complicated}
Support for special characters like !@#$%^&*()_-+=[]{}|\/"':;.,<>, etc

If at anytime you wish to chat, start the excutable and PM me for my listening port and ip address, must also give me your ip addres and listen port. I recommend port 150.

Enjoy the non buggy version!

PreView!!!

Picture Removed

Edited by Agent Smith

Share this post


Link to post
Share on other sites
themax90

UPDATE:

Web Page Updated.

Now does not use second excutable send.exe, code implemented into one.

Loop error resolved.

OnTop Msg window

Disable core.exe so bugs will not effect program but you can still see replies.

Share this post


Link to post
Share on other sites
b14ck

Here is my Java chat client that I made in literally 10 minutes:

import java.util.ArrayList;
public class ServerMain {
    
    private ArrayList childs;
    private ServerListener listener;
    
    public ServerMain() {
        childs = new ArrayList();
        listener = new ServerListener(this,4444);
        listener.start();
    }
    
    public void addChild(ServerChild c) {
        childs.add(c);
    }
    
    public void removeChild(ServerChild c) {
                childs.remove(c);
    }
    
    public void readLine(ServerChild o,String l) {
        for (int i = 0; i < childs.size(); i++) {
            if (((ServerChild)childs.get(i)).equals(o)) { continue; }
            ((ServerChild)childs.get(i)).sendLine("<" + o.getName() + "> " + l);
        }
    }
    
    public void rawLine(String l) {
        for (int i = 0; i < childs.size(); i++) {
            ((ServerChild)childs.get(i)).sendLine(l);
        }
    }
    
    public static void main(String[] args) {
        new ServerMain();
    }
    
}

import java.net.*;
import java.io.IOException;

public class ServerListener extends Thread {
    
    private ServerSocket listener;
    private ServerMain main;
    
    public ServerListener(ServerMain m,int port) {
        main = m;
        try {
            listener = new ServerSocket(port);
        } catch (IOException e) {
            System.err.println("ServerSocket Exception: " + e.getMessage());
            System.exit(0);
        }
    }
    
    public void run() {
        try {
            while (true) {
                new ServerChild(main,listener.accept());
            }
        } catch (IOException e) {
            System.err.println("ServerSocket Accept Exception: " + e.getMessage());
            System.exit(0);
        }
    }
    
}

import java.net.*;
import java.io.*;

public class ServerChild {
    
    private ServerMain main;
    private Socket sock;
    private ServerChildReader reader;
    private PrintWriter out;
    
    private String name;
    public ServerChild(ServerMain m,Socket s) {
        main = m;
        sock = s;
        System.err.println("Accepting new connection: " + s);
        main.addChild(this);
        try {
            out = new PrintWriter(s.getOutputStream(),true);
        } catch (IOException e) {
            System.err.println("Exception in ServerChild: " + e.getMessage());
            System.exit(0);
        }
        reader = new ServerChildReader(m,this,s);
        reader.start();
    }
    
    public void sendLine(String line) { out.println(line); }
    
    public String getName() {
        return name;
    }
    
    public void setName(String n) { 
        System.err.println("Child sets name: " + n);
        main.rawLine("* " + n + " has joined the chat.");
        name = n; 
    }
    
}

import java.net.*;
import java.io.*;

public class ServerChildReader extends Thread {
    
    private BufferedReader in;
    private ServerMain main;
    private ServerChild parent;
    private Socket sock;
    public ServerChildReader(ServerMain m,ServerChild p,Socket s) {
        sock = s;
        parent = p;
        main = m;
        try {
            in = new BufferedReader(new InputStreamReader(s.getInputStream()));
        } catch (IOException e) {
            System.err.println("Exception in child: " + e.getMessage());
            System.exit(0);
        }
    }
    
    public void run() {
        String line;
        try {
            parent.sendLine("Enter your name: ");
            parent.setName(in.readLine());
            while ((line = in.readLine()) != null) {
                main.readLine(parent,line);
            }
            main.removeChild(parent);
        } catch (IOException e) {
        }
        main.rawLine("* " + parent.getName() + " has left the chat.");
    }
    
}

That is 4 classes just incase you don't know how OOP workz.

Edited by b14ck

-I am the giver of life and the bringer of death.

Share this post


Link to post
Share on other sites
themax90

Thats java the easy ass language. Mine is coded in autoit and in c++. Java already has functions pre built into them and all that, with c++ you have to do everything, nothing of it is automated. Please Mod remove b14ck's post, it does not belong here, I didnot ask for it and it is in no way helping this project. Please remove it.

Agent Smith

Share this post


Link to post
Share on other sites
b14ck

Hey... Java is a real language d00d. You should probably learn about stuff before your rants heh... You have to make methods in Java too! And uh.. Smith.. Making a chat client isn't very hard at all. Neither is au3 GUI. Ah, one more thing. If you do by chance happen to test out my client I would suggest connecting to it with putty which you can download from google in RAW mode.

Edited by b14ck

-I am the giver of life and the bringer of death.

Share this post


Link to post
Share on other sites
Nova

Thats java the easy ass language

Java is a very powerfull language, it dose not deserve the title easy ass if a mod dose remove b14ck last post I suggest that you also remove Agent Smiths last post

Share this post


Link to post
Share on other sites
b14ck

Yah... That was a good way to put it. Java is pretty much an "equal" of C++, both are OOP, both are portable, etc.


-I am the giver of life and the bringer of death.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.