2012-10-12 4 views
2

최근 멀티 쓰레딩 개념을 사용하여 서버 클라이언트 프로그램을 만들고 있습니다. 어떤 이유로 클라이언트의 문자열 배열을 서버로 보내야합니다. 해당 문자열 배열을 보내려면 ObjectOutputStreamwriteObject() 메서드를 사용하고 있습니다. 예를 들어 String data[] = new String[3]이라는 배열이 있는데 socketwriteobject(data) 이상으로 전송합니다.소켓을 통해 문자열 배열 객체 수신 및 인쇄

질문 : 서버에이 문자열 배열을 어떻게받을 수 있습니까? 그것은 ObjectInputStream이고이 방법은 readObject() 나를 도울 수 있습니까? 이 객체를 반복하여 서버 측 문자열의 새로운 배열로 만들고 싶습니다. 예를 들어 String newData[] = new String[3]을 입력 한 다음 에 data[0]의 문자열을 data[2]newData[2]까지 넣습니다.

답변

3

나는 readObject()을 사용하여 개체를 읽을 때 String [] 자체를 반환해야한다고 생각합니다.

  String[] myObjects = (String[])inObjectStream.readObject(); 

작동하지 않습니까?

+0

네, 그 작품! 고맙습니다. 하지만 질문이 있는데, 왜이 코드 블록에'try-catch'를 넣어야합니까? – irvana

+0

'ObjectInputStream.readObject()'는 몇 가지 가능한 실패에 대해 몇 가지 예외를 throw합니다. ClassNotFoundException' - 직렬화 된 객체의 클래스를 찾을 수 없다. 'InvalidClassException' - 직렬화에 사용되는 클래스에 문제가 있습니다. 'StreamCorruptedException' - 스트림의 제어 정보가 일치하지 않습니다. 'OptionalDataException' - 원시 데이터가 객체가 아닌 스트림에서 발견되었습니다. 'IOException' - 일반적인 입출력 관련 예외입니다. –

+0

위 시나리오 중 하나, 즉 파일을 읽을 수 없으면 catch 블록에서 처리해야하는 IOException을 발생시킵니다. 'try/cath를 추가하고 싶지 않다면 메소드 서명의 끝 부분에 앞서 언급 한 예외를'throws IOException, OptionalDataException, InvalidClassException, ClassNotFoundException, StreamCorruptedException'으로 추가하십시오. 도움이 필요하시면 알려주세요. –