Google Answers Logo
View Question
 
Q: WinPopup protocol ( No Answer,   4 Comments )
Question  
Subject: WinPopup protocol
Category: Computers > Software
Asked by: gevorg-ga
List Price: $100.00
Posted: 01 Nov 2002 10:53 PST
Expires: 01 Dec 2002 10:53 PST
Question ID: 95626
What are the specs of WinPopup protocol? (the one invoked by the 'net
send x.x.x.x hello' command in DOS)? I need the whole specification as
well as a recipe for writing portable code (java), which will pop up
messages on a client's machine.

Clarification of Question by gevorg-ga on 01 Nov 2002 13:22 PST
When I say protocol - I mean NOT the syntax of the command, but the
actual network protocol used to send the messages, which result in
windows popping up.

Clarification of Question by gevorg-ga on 02 Nov 2002 08:47 PST
I want to emphasize the fact that the code needs to be portable - that
is to any (most) operating system. Code, which works only in Windows
is not what I am looking for.
Answer  
There is no answer at this time.

Comments  
Subject: Re: WinPopup protocol
From: companswerguru-ga on 01 Nov 2002 12:02 PST
 
If you go to a command prompt or DOS window and type 

NET SEND ?     
This is what is returned.

NET SEND {name | * | /DOMAIN[:name] | /USERS} message


Some interesting links regarding this subject are

http://www.liquidmirror.com/ANSHelp/about.asp

http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_20144809.html

http://www.microsoft.com/windowsxp/home/using/productdoc/en/default.asp?url=/windowsxp/home/using/productdoc/en/net_send.asp


Here you can find a chart explaining the syntax.
http://guymal.com/techCorner/NET_SEND_reference.html

Certainly not a complete answer to your query but it is a start in the
right direction.
Subject: Re: WinPopup protocol
From: know_it_all_1-ga on 01 Nov 2002 23:46 PST
 
Here are bits of info to help you

------------------------------------
Here is the sample Java code you are looking for.

http://www.experts-exchange.com/Programming/Programming_Languages/Java/Q_20286388.html
------------------------------------
winpopup works by using a "mailslot" called "messngr" it is a virtual
file in the computer's memory that is opened by winpopup and can be
written to directly from another computer. Winpopup the realizes there
is new info there and displays it on screen.

-----------------------------------
http://www.oreilly.com/catalog/samba/chapter/book/ch08_04.html
---------------------------------
Subject: Re: WinPopup protocol
From: xmurf-ga on 03 Nov 2002 03:27 PST
 
WinPopup uses the SMB protocol, also called CIFS.

A detailed protocol reference is located at http://www.ubiqx.org/cifs/

The software package Samba, at http://us6.samba.org/samba/samba.html,
includes portable C code for sending WinPopup messages (as part of its
complete CIFS implementation).  Specifically, the -M option to
smbclient is used to send winpopup messages.

The relevant code is:

<code>
static int do_message_op(void)
{
        struct in_addr ip;
        struct nmb_name called, calling;

        zero_ip(&ip);

        make_nmb_name(&calling, global_myname, 0x0);
        make_nmb_name(&called , desthost, name_type);

        zero_ip(&ip);
        if (have_ip)
                ip = dest_ip;
        else if (name_type != 0x20) {
                /* We must do our own resolve name here as the
nametype is #0x3, not #0x20. */
                if (!resolve_name(desthost, &ip, name_type)) {
                        DEBUG(0,("Cannot resolve name %s#0x%x\n",
desthost, name_type));
                        return 1;
                }
        }
        if (!(cli=cli_initialise(NULL)) || (cli_set_port(cli, port) ==
0) || !cli_connect(cli, desthost, &ip)) {
                DEBUG(0,("Connection to %s failed\n", desthost));
                return 1;
        }

        if (!cli_session_request(cli, &calling, &called)) {
                DEBUG(0,("session request failed\n"));
                cli_shutdown(cli);
                return 1;
        }

        send_message();
        cli_shutdown(cli);

        return 0;
}

</code>

More detail is available at the URL above.
Subject: Re: WinPopup protocol
From: xmurf-ga on 03 Nov 2002 03:29 PST
 
Further information, the send_message() function invoked above is:

/****************************************************************************
send a message
****************************************************************************/
static void send_message(void)
{
        int total_len = 0;
        int grp_id;

        if (!cli_message_start(cli, desthost, username, &grp_id)) {
                DEBUG(0,("message start: %s\n", cli_errstr(cli)));
                return;
        }


        printf("Connected. Type your message, ending it with a Control-D\n");

        while (!feof(stdin) && total_len < 1600) {
                int maxlen = MIN(1600 - total_len,127);
                pstring msg;
                int l=0;
                int c;

                ZERO_ARRAY(msg);
                for (l=0;l<maxlen && (c=fgetc(stdin))!=EOF;l++) {
                        if (c == '\n')
                                msg[l++] = '\r';
                        msg[l] = c;
                }

                /*
                 * The message is in UNIX codepage format. Convert to
                 * DOS before sending.
                 */

                unix_to_dos(msg);

                if (!cli_message_text(cli, msg, l, grp_id)) {
                        printf("SMBsendtxt failed (%s)\n",cli_errstr(cli));
                        return;
                }

                total_len += l;
        }

        if (total_len >= 1600)
                printf("the message was truncated to 1600 bytes\n");
        else
                printf("sent %d bytes\n",total_len);

        if (!cli_message_end(cli, grp_id)) {
                printf("SMBsendend failed (%s)\n",cli_errstr(cli));
                return;
        }
}

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy