소켓으로 구성된 응용 프로그램에서 작업하고 있습니다. 그것은 클라이언트 (안드로이드 장치)에서 서버 (우분투를 실행하는 내 PC)에 문자열 값을 전송해야합니다. 서버 측 코드에서 소켓을 통해 전송되는 값을 String 변수에 저장해야합니다.Java의 DataInputStream에서 문자열을 가져 오는 방법은 무엇입니까?
다음은 String 값을 서버에 보내는 코드입니다.
//instantiating the socket object for the client
Socket client = new Socket("192.168.0.103", port);
OutputStream outToServer = client.getOutputStream();
DataOutputStream out = new DataOutputStream(outToServer);
String msg = "My String Value";
//Message to be send to server
out.writeUTF(msg);
//Closing the client's socket. No connections after this.
client.close();
다음은 서버에서 문자열 값을 가져 오는 데 사용하는 코드입니다.
//Server object. Stores the reference to the socket object returned by the accept()
//The returned socket object contains established connection to the client.
Socket server = serverSocket.accept();
DataInputStream in = new DataInputStream(server.getInputStream());
System.out.println(in.readUTF());
//This prints "My String Message"
//Something like this i want to do.
String msg = in.readUTF();
//closing the server socket. No connection now.
server.close();
서버 측 프로그램이 행에 붙어지고있다
이 지금 무슨 일이 일어나고 :
String msg = in.readUTF();
String 변수에의 DataInputStream의 문자열 값을 저장하는 올바른 방법은 무엇입니까?
두 번 읽으면서 한 번만 쓰는 중입니다. 한 번만 쓰면 두 번 읽을 수 없습니다. –
좋은 캐치!. 그러나 아직도 나는 그렇게하는 가장 좋은 방법을 찾고있다. – priyankvex
16 비트 제한 조건에 부합하는 최상의 방법이 이미 있습니다. – EJP