PrintWriter pout = new PrintWriter(out, true);
pout.println("abcde");
해도 될겁니다.
정영훈 님이 쓰신 글 :
: 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();
: :
: : ========================================================================
: :
: : 도움 부탁드립니다.
|