2011-12-01 4 views
1

동일한 소켓 출력 스트림에 PrintWriterObjectOutputStream을 사용할 수 있습니까?자바 소켓 출력 스트림

out_stream = new PrintWriter(socket.getOutputStream(), true); 
obj_stream = new ObjectOutputStream(socket.getOutputStream(); 

답변

1

수 있습니다.하지만 버퍼링을 처리해야합니다. PrintWriter 또는 ObjectOutputStream은 데이터를 바이트로 변환하여 기본 스트림 (여기서는 소켓) 에서 어떤 점으로 전송합니다. 버퍼링은 바이트를 쓰기 전에 조금 기다려야하므로 바이트가 개별적으로가 아니라 큰 덩어리로 전송 될 수 있습니다.

버퍼링에 관한 Javadoc을 읽고 소켓에 바이트가 기록되도록하려면 PrintWriterObjectOutputStreamflush()을 사용하십시오.

3

나는 그렇다고 말하고 싶지만 나는 그것을 할 것이라고 생각하지 않는다.

원하는 것을 원하십니까?

+0

여기까지 내가 지금까지 한 일은 http://stackoverflow.com/questions/8272726/distributed-system입니다. 이제 작업자 기계가 'doSomething()'메소드를 보내야한다고 구현하려고합니다. 매니저. ObjectOutputStream 클래스를 사용하여 객체를 보내서이 작업을 수행 할 수 있다고 생각했습니다. –

+0

@sudo_o 나는 그것들을 섞을 필요가 아직도 없다. 일부 데이터를 객체로, 일부를 텍스트로 읽을 필요가있을 때 복잡성을 추가한다. 하지만 행운 : -) – Fredrik

+0

필요가 없습니다, 내 프레임 워크는 내가 원하는 방식으로 문자열을 전달하고 나는 그것을 부수고 싶지 않아. 이제는 객체를 보내려고하지만 대신 클래스의'PrintWriters'를 모두 변경하는 대신 작업하면서 작업을 분리하여 보관합니다. 그러나 내가'w_obj.writeObject (obj); 객체를 보내려고하면'IOExpection'을 throw합니다. –