
11.09.2012, 13:57
|
 |
Let Me Show You
|
|
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
|
|
Delphi:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
FNamedPipe: THandle;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
FNamedPipe:=CreateNamedPipe('\\.\pipe\java',
PIPE_ACCESS_DUPLEX, PIPE_TYPE_BYTE or PIPE_WAIT, PIPE_UNLIMITED_INSTANCES,
$100, $100, 100, nil);
if FNamedPipe=INVALID_HANDLE_VALUE then
ShowMessage(SysErrorMessage(GetLastError));
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
CloseHandle(FNamedPipe);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
Buffer: array [0..$ff] of Char;
NumberOfBytesRead: DWORD;
NumberOfBytesWritten: DWORD;
s: String;
begin
if ReadFile(FNamedPipe, Buffer[0], Length(Buffer), NumberOfBytesRead, nil) then
begin
Memo1.Lines.Add(Copy(Buffer, 1, NumberOfBytesRead));
s:='Hello, Java';
WriteFile(FNamedPipe, s[1], Length(s), NumberOfBytesWritten, nil);
end;
end;
end.
Java:
PHP код:
import java.io.*;
public class NamedPipe
{
public NamedPipe()
{
try
{
RandomAccessFile pipe = new RandomAccessFile("\\\\.\\pipe\\java", "rw");
try
{
pipe.write(("Hello, Delphi").getBytes());
byte[] buffer = new byte[0x100];
int l = pipe.read(buffer);
System.out.println(new String(buffer, 0, l));
// System.in.read();
}
finally
{
pipe.close();
}
}
catch (Exception e)
{
System.out.println("Exception: " + e.getMessage());
}
}
public static void main(String[] args)
{
NamedPipe namedPipe = new NamedPipe();
}
}
раскомментировать строчку при запуске из консоли.
сначала запускать программу на Delphi !!!
__________________
Пишу программы за еду.
__________________
|