dos.writeChars("abcde");
대신에
bw.write("abcde");
bw.newLine();
bw.flush();
이렇게 해서 테스트해보세요.
김동진 님이 쓰신 글 :
: 자바(서버) 델파이(클라이언트) 간 문자열 주고 받는 프로그램을 작성중에 있습니다.
: 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();
:
: ========================================================================
:
: 도움 부탁드립니다.
|