在局域网内发消息(200分)

  • 主题发起人 主题发起人 iseek
  • 开始时间 开始时间
I

iseek

Unregistered / Unconfirmed
GUEST, unregistred user!
我们办公室有7台电脑,其中3台98,3台2K,一台XP,服务器是98.
我想从任一台机器上向局域网内的机器发送文字信息,有点像那什么信使一样.当然,发送的
信息最好能被接收者保存下来.
该怎么做?
我基本上不懂网络编程.
我们办公室是一个编辑部.如果能互通信息,就非常方便.
哪位帮忙解决,我每期寄杂志给你看.:-)
 
请大虾帮忙
 
去参考delphi自身带的例子就可以了,里面有网络编程发送消息的
例子,在demos目录。
 
如果是用Delphi6,可以查看使用Indy的Demos,在大富翁的全文检索里也可以查到许多
关于Indy的内容。
 
哈哈,卖瓜来了
http://www.delphibbs.com/keylife/iblog_show.asp?xid=2657

不过如果要是可靠传输,那么最好还是使用其他的方法
命名管道、真正的tcp传输等
 
dos下运行
c:/net send 机器名 消息


net send computername msg

不用编程
 
有种简单的办法,安装了Windows 98附带的工具PWS(Microsoft Personal Web Server)后,把计算机IP地址固定,别人的计算机只需要在IE上输入您的IP地址,就可以浏览您放在PWS中的网页,几个人可以在局域网上互通消息, 加些cgi程序 旧可以聊天了
 
对了netmeeting 也可以在局域网内部用。 可以记录内容。
 
///////////////////////////////////////////////////////////////////////////
// //
// Copyright ?1997-1998, NetMasters, L.L.C //
// - All rights reserved worldwide. - //
// Portions may be Copyright ?Inprise. //
// //
// Message Client/Server Demo Unit 1: (UNIT1.PAS) //
// //
// DESCRIPTION: //
// //
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY //
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE //
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR //
// PURPOSE. //
// //
///////////////////////////////////////////////////////////////////////////
//
// Revision History
//
// //
///////////////////////////////////////////////////////////////////////////
unit msgdem;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Psock, NMMSG, ComCtrls, ScktComp;

type
TForm1 = class(TForm)
Panel1: TPanel;
Memo1: TMemo;
Edit1: TEdit;
NMMsg1: TNMMsg;
NMMSGServ1: TNMMSGServ;
Label1: TLabel;
Edit2: TEdit;
Label2: TLabel;
Edit3: TEdit;
StatusBar1: TStatusBar;
Label3: TLabel;
btnSend: TButton;
ListBox1: TListBox;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Splitter1: TSplitter;
procedure NMMSGServ1MSG(Sender: TComponent; const sFrom, sMsg: String);
procedure NMMsg1MessageSent(Sender: TObject);
procedure NMMsg1Connect(Sender: TObject);
procedure NMMsg1ConnectionFailed(Sender: TObject);
procedure NMMsg1Disconnect(Sender: TObject);
procedure NMMsg1HostResolved(Sender: TComponent);
procedure NMMsg1Status(Sender: TComponent; Status: String);
procedure NMMsg1InvalidHost(var handled: Boolean);
procedure NMMSGServ1ClientContact(Sender: TObject);
procedure NMMSGServ1Status(Sender: TComponent; Status: String);
procedure btnSendClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.NMMSGServ1MSG(Sender: TComponent; const sFrom,
sMsg: String);
begin
Memo1.Lines.Add(sFrom+'发送:'+sMsg);
{Memo1.Lines.Add('Message From: '+sFrom);
Memo1.Lines.Add(#9+'From IP: '+NMMSGServ1.RemoteIP);
Memo1.Lines.Add(#9+'Message: '+sMsg);
Memo1.Lines.Add(#9+'Message: '+NMMSGServ1.Host);}
btnSend.Enabled := True;
end;

procedure TForm1.NMMsg1MessageSent(Sender: TObject);
begin
//ShowMessage('Message sent!');
end;

procedure TForm1.NMMsg1Connect(Sender: TObject);
begin
StatusBar1.SimpleText := '已连接';
end;

procedure TForm1.NMMsg1ConnectionFailed(Sender: TObject);
begin
ShowMessage('连接失败!');
end;

procedure TForm1.NMMsg1Disconnect(Sender: TObject);
begin
If StatusBar1 <> nil then
StatusBar1.SimpleText := '断开';
end;

procedure TForm1.NMMsg1HostResolved(Sender: TComponent);
begin
StatusBar1.SimpleText := '当机';
end;

procedure TForm1.NMMsg1Status(Sender: TComponent; Status: String);
begin
If StatusBar1 <> nil then
StatusBar1.SimpleText := status;
end;

procedure TForm1.NMMsg1InvalidHost(var handled: Boolean);
var
TmpStr: String;
begin
If InputQuery('主机不存在!', '指定一个新的主机:', TmpStr) then
Begin
NMMsg1.Host := TmpStr;
Handled := TRUE;
End;
end;

procedure TForm1.NMMSGServ1ClientContact(Sender: TObject);
begin
NMMsgServ1.ReportLevel := Status_Basic;
NMMsgServ1.TimeOut := 90000;
StatusBar1.SimpleText := '客户连接';
end;

procedure TForm1.NMMSGServ1Status(Sender: TComponent; Status: String);
begin
If StatusBar1 <> nil then
StatusBar1.SimpleText := status;
end;

procedure TForm1.btnSendClick(Sender: TObject);
begin
NMMsg1.Host := Edit3.Text;
NMMsg1.FromName := Edit2.Text;
NMMsg1.PostIt(Edit1.Text);
btnSend.Enabled := False;
end;

end.
 
谢谢各位
我先试试yzhshi给的例子
 
下载个软件不是行了!就像QQ一样!
 
net send 127.0.0.1 "Hello Word"!
 
yzhshi
//------------------------------------------------------
procedure TMailSlotServer.Open;
begin
FSlotHandle := CreateMailSlot(PChar('//./mailslot/' + MailSlotName), 0, MAILSLOT_WAIT_FOREVER, nil);
if FSlotHandle = INVALID_HANDLE_VALUE then
raise Exception.Create('TMailSlotServer:邮槽创建失败!');

FTimer.Enabled := True;
end;
//---------------------------------------------------------------
编译时出错,可能是(PChar('//./mailslot/' + MailSlotName)处有问题.
'//./mailslot/'是什么意思我不懂,好像是路径吧.我该怎么写.
另外,如果程序编译成功,是不是应该在每台机器上同时运行?
再次谢谢,因为我实在太菜了,自己感觉问的问题无比愚蠢.呵呵.
这之前,我只用INDY控件收发过邮件,下载过网页.

 
用delphi编一个局域网聊天软件不就行了,在delphi的demos目录下有示例
 
我不是要聊天,不用那么复杂,只是想发消息就可以了.
 
对,netmeeting! windows自带,完全可以满足你的要求
 
我是2K,没有netmeeting
 
积步你好
net send 127.0.0.1 "Hello Word"!
这行是在“运行”里写吗?
 
to _delphi
请问,我的机器是2K,进不了DOS,怎么办?
 
附件/通讯/netmeeting
可能你装windows的时候没装这个组件,可以用windows的安装盘安装
 
后退
顶部