求助!一个小问题,请大家帮忙谢谢! 我现在在做一个故障处理反馈的系统遇到了一个问题,就是怎么样可以实现网络里面2台电脑通过IP地址进行消息互发?前台用户发了一个故障信息过来我要在后台马上弹出提示框,如果后台不应答的话就要不停的发出提示信息。请问这个用DELPHI怎么实现?谢谢!请大家帮帮忙!分数不够可以再加! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用ServerSocket ClientSocket 来编程,具体的程序例子,网上很多。。 最好的例子是Delphi 自带的 \Demos\Internet\Chat 。看看就知道如何做了。。 局域网内直接使用信使服务就可以了net send remotecomputer xxxxremotecomputer 远程机xxxx 要发送的信息 怎么不详细了呢。。 \Demos\Internet\Chat 看看啊 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, ScktComp, ExtCtrls, ComCtrls;type TForm1 = class(TForm) ClientSocket1: TClientSocket; ServerSocket1: TServerSocket; MainMenu1: TMainMenu; File1: TMenuItem; listen1: TMenuItem; connect1: TMenuItem; StatusBar1: TStatusBar; Memo2: TMemo; Memo1: TMemo; Label1: TLabel; Label2: TLabel; Button1: TButton; Button2: TButton; NonConnect1: TMenuItem; procedure FormCreate(Sender: TObject); procedure listen1Click(Sender: TObject); procedure connect1Click(Sender: TObject); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Button1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure Button2Click(Sender: TObject); procedure NonConnect1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; server:string; isserver:boolean; Client_Flag : Boolean = False; Server_Flag : Boolean = False;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin listen1click(nil);end;procedure TForm1.listen1Click(Sender: TObject);begin memo1.Lines.Clear; memo2.Lines.Clear; listen1.Checked:=not listen1.Checked; if listen1.Checked then begin clientsocket1.Active:=false; serversocket1.Active:=true; statusbar1.Panels[0].Text:='listening......'; end else begin if serversocket1.Active then serversocket1.Active:=false; clientsocket1.Active:=true; statusbar1.Panels[0].Text:=''; end;end;procedure TForm1.connect1Click(Sender: TObject);begin if clientsocket1.Active then clientsocket1.Active:=false; server := '192.168.1.'; if inputquery('computer to connect to ','address name:',server) then if length(server)>0 then with clientsocket1 do begin Address:=server; try active:=true; except end; end;end;procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);begin statusbar1.Panels[0].Text:='connected to : '+socket.RemoteHost; Client_Flag := true;end;procedure TForm1.ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket);begin isserver:=true; statusbar1.Panels[0].Text:='connected to : '+socket.RemoteAddress; Server_Flag := true;end;procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);begin memo2.Lines.Add(socket.receivetext)end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);begin memo2.Lines.Add(socket.ReceiveText);end;procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);begin memo2.Lines.Add('error connecting to: '+server); errorcode:=0;end;procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if key=VK_return then begin if Server_Flag then serversocket1.socket.connections[0].sendtext(memo1.lines[memo1.lines.count-1]) else ClientSocket1.Socket.SendText(memo1.lines[memo1.lines.count-1]); end; end;procedure TForm1.Button1Click(Sender: TObject);begin Form1.connect1Click(Sender);end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin ClientSocket1.Active := False; ServerSocket1.Active := False;end;procedure TForm1.ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);begin ErrorCode := 0;end;procedure TForm1.ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket);begin Form1.StatusBar1.Panels[0].Text := '断开';end;procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);begin Form1.StatusBar1.Panels[0].Text := '断开';end;procedure TForm1.Button2Click(Sender: TObject);begin if Client_Flag then ClientSocket1.Active := False; if Server_Flag then serversocket1.socket.connections[0].Close;end;procedure TForm1.NonConnect1Click(Sender: TObject);begin Form1.Button2Click(Sender);end;end. 在Form 上放一个ServerSocket 和一个ClientSocket 设置两个控件的端口,设置ClientSocket的Address或者Host,将两个控件的Active 设置为True;当ClientSocket发送数据的时候,用SendText(msg:sting);serverSocket 的 OnClientRead()事件接受到CLientSocket 发送的数据时,判断数据的有效性,即可弹出窗口。 delphi中怎么实现远程上传下载文件包 好何将一个ASCII码的字符串分别转换成字符 WebBrowser1的问题 很菜的问题??? delphi没学好又想学java各位给个意见! 生成lib文件 查询的问题? 请教IdTcpServer,IdTcpClient;IdUdpServer,IdUdpClient的用法? 函数返回多个值?各位大虾帮忙? 请帮忙,很容易!! 如何使用TValueListEditor的OnValidate事件? NMSMTP发送邮件问题!如何设置用户名和密码
net send remotecomputer xxxx
remotecomputer 远程机
xxxx 要发送的信息
\Demos\Internet\Chat 看看啊
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ScktComp, ExtCtrls, ComCtrls;type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
MainMenu1: TMainMenu;
File1: TMenuItem;
listen1: TMenuItem;
connect1: TMenuItem;
StatusBar1: TStatusBar;
Memo2: TMemo;
Memo1: TMemo;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
NonConnect1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure listen1Click(Sender: TObject);
procedure connect1Click(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure Button2Click(Sender: TObject);
procedure NonConnect1Click(Sender: TObject); private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
server:string;
isserver:boolean;
Client_Flag : Boolean = False;
Server_Flag : Boolean = False;
implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
listen1click(nil);
end;procedure TForm1.listen1Click(Sender: TObject);
begin
memo1.Lines.Clear;
memo2.Lines.Clear;
listen1.Checked:=not listen1.Checked;
if listen1.Checked then
begin
clientsocket1.Active:=false;
serversocket1.Active:=true;
statusbar1.Panels[0].Text:='listening......';
end
else
begin
if serversocket1.Active then
serversocket1.Active:=false;
clientsocket1.Active:=true;
statusbar1.Panels[0].Text:='';
end;
end;procedure TForm1.connect1Click(Sender: TObject);
begin
if clientsocket1.Active then
clientsocket1.Active:=false; server := '192.168.1.';
if inputquery('computer to connect to ','address name:',server) then
if length(server)>0 then
with clientsocket1 do
begin
Address:=server;
try
active:=true;
except
end;
end;
end;procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
statusbar1.Panels[0].Text:='connected to : '+socket.RemoteHost;
Client_Flag := true;
end;procedure TForm1.ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
begin
isserver:=true;
statusbar1.Panels[0].Text:='connected to : '+socket.RemoteAddress;
Server_Flag := true;
end;procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo2.Lines.Add(socket.receivetext)
end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo2.Lines.Add(socket.ReceiveText);
end;procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
memo2.Lines.Add('error connecting to: '+server);
errorcode:=0;
end;procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_return then
begin
if Server_Flag then
serversocket1.socket.connections[0].sendtext(memo1.lines[memo1.lines.count-1])
else
ClientSocket1.Socket.SendText(memo1.lines[memo1.lines.count-1]);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.connect1Click(Sender);
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ClientSocket1.Active := False;
ServerSocket1.Active := False;
end;procedure TForm1.ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode := 0;
end;procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Form1.StatusBar1.Panels[0].Text := '断开';
end;procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Form1.StatusBar1.Panels[0].Text := '断开';
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if Client_Flag then
ClientSocket1.Active := False;
if Server_Flag then
serversocket1.socket.connections[0].Close;
end;procedure TForm1.NonConnect1Click(Sender: TObject);
begin
Form1.Button2Click(Sender);
end;end.
当ClientSocket发送数据的时候,用SendText(msg:sting);serverSocket 的 OnClientRead()事件接受到CLientSocket 发送的数据时,判断数据的有效性,即可弹出窗口。