자바(서버) 델파이(클라이언트) 간 문자열 주고 받는 프로그램을 작성중에 있습니다.
IdtTCPClient를 활용하여, IdTCPClient1.WriteLn('Hello'); 를 서버측에 보내게 되면
문자열이 서버측(자바) 콘솔에 제대로 받았다고 표시가 되는데, 서버측에서 아무리
문자열을 전송해도 클라이언트가 제대로 문자열을 받고있지 못합니다.
===========================Client 측 코드 =============================
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Sockets, ScktComp, DB, DBClient, IdBaseComponent,
IdComponent, IdIOHandler, IdIOHandlerStream, IdIOHandlerSocket,
CustomizeDlg, IdTCPConnection, IdTCPClient;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
ClientSocket1: TClientSocket;
CustomizeDlg1: TCustomizeDlg;
IdTCPClient1: TIdTCPClient;
Edit2: TEdit;
Edit3: TEdit;
ServerSocket1: TServerSocket;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
str: AnsiString;
ch: Char;
Stream: TStream;
Buffer: TIdManagedBuffer;
startTime: String;
endTime: String;
check: Boolean;
inputstream : TStream;
encString : WideString;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient1.Host := '211.178.181.83';
IdTCPClient1.Port := StrToInt('7777');
IdTCPClient1.Connect(10000);
startTime := FormatDateTime('yyyy-mm-dd, HH:MM:SS', Now);
Edit2.Text := startTime;
str := 'Hello';
IdTCPClient1.WriteLn(str); // 서버측(자바)으로 정상 송신
str := IdTCPClient1.ReadLn('end', 10000, 1000);
Edit1.Text := str; // 서버측(자바) 로부터 'abcde'를 받아올 것으로 예측했으나 실패
endTime := FormatDateTime('yyyy-mm-dd, HH:MM:SS', Now);
Edit3.Text := endTime;
end;
end.
============================서버측 =================================
OutputStream out = socket.getOutputStream();
java.io.InputStream in = socket.getInputStream();
DataInputStream din = new DataInputStream(in);
DataOutputStream dos = new DataOutputStream(out);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
String info = br.readLine();
System.out.println("input : "+ info); // 델파이 클라이언트로부터 받아온값 정상출력됨
dos.writeChars("abcde");
dos.close();
socket.close();
========================================================================
도움 부탁드립니다.
|