| 
			
			 
			
				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 !!! |