나는 소켓을 사용하여 바람둥이와 통신을 시도하고 있습니다. HTTP 메시지를 작성하여 outputStream에 쓰고 있습니다. 연결이 성공적으로 설정되었지만 응답이 없습니다. 텔넷을 통해 동일한 메시지를 통해 연결하려고 할 때 응답을받을 수 있습니다. 아래의 코드 스 니펫을 찾고 내가 누락 된 부분을 지적하십시오.소켓을 통해 바람둥이를 연결하십시오.
String text1 = text.getText();
String text2 = text_1.getText();
String address = combo.getText();
System.out.println("Text1 =" + text1 + " Text2 = " + text2 + " Address = "+address);
try{
StringBuilder builder = new StringBuilder();
Socket socket = new Socket("localhost", 8082);
DataOutputStream outToServer = new DataOutputStream(socket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//U need to post actual HTTP MESSAGE HERE
StringBuilder requestBuilder = new StringBuilder();
requestBuilder.append("GET").append(SPACE).append(FORWARD_SLASH).append("SayHello").append(FORWARD_SLASH).append("SayHello").append("?")
.append("text1=").append(text1).append("&text2=").append(text2).append(NEWLINE)/*.append(SPACE).append("HTTP/1.1").append(NEWLINE)
.append("accept").append(COLON).append(SPACE).append("text/plain;").append(SPACE).append("text/html").append(NEWLINE)
.append("accept-language").append(COLON).append("en-US").append(NEWLINE)
.append("connection").append(COLON).append("keep-alive").append(NEWLINE)
.append("host").append(COLON).append("localhost").append(NEWLINE)
.append("user-agent").append(COLON).append("MyUCBrowser").append(NEWLINE)
.append("content-length").append(COLON).append("0").append(NEWLINE)
.append("connection-type").append(COLON).append("text/plain").append(NEWLINE)*/;
/*box.setMessage(requestBuilder.toString());
box.open();*/
System.out.println(requestBuilder.toString());
outToServer.writeUTF(requestBuilder.toString());
String tempResp;
while ((tempResp = inFromServer.readLine()) != null) {
builder.append(tempResp);
}
System.out.println(builder.toString().length() > 0 ? builder.toString() : "Anup Kalane!!!");
text_2.setText(builder.toString());
socket.close();
display.dispose();
}
catch (UnknownHostException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
} catch (IOException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
서블릿을 편리하게 붙이기 위해 ... 매우 기본적인 것입니다. 방금 테스트 목적으로 만들었습니다.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String text1 = request.getParameter("text1") != null ? request.getParameter("text1") : "NULL";
String text2 = request.getParameter("text2") != null ? request.getParameter("text2") : "NULL";
System.out.println("Hello");
PrintWriter writer = response.getWriter();
writer.write("<HTML><BODY><H1>HELLO\nText1 = "+text1+"\nText2 = "+text2+"</H1></BODY></HTML>");
writer.close();
}
코드에서 프로그램이 멈추거나 어떻게 든 그것을 끝까지 만듭니다? 또한 물건을 추가하고 줄 바꿈을 몇 개 보내면 어떻게됩니까? 오류 응답을 받으시겠습니까? 그렇지 않다면 훨씬 근본적인 문제가 있습니다. 그렇다면 천천히 작동을 멈출 때까지 천천히 추가 기능을 추가하고 왜 그 기능이 중단되는지 알아 내십시오. – xaxxon
sir 어디에서 내 프로그램이 중요하지는 않은지, 내가 게시 한 스 니펫은 사실상 매우 정상적으로 시작하고 중지하는 거대한 SWT 애플리케이션의 일부입니다. 아니, 나는 전혀 오류 응답을받지 못한다. BTW 당신의 좋은 도움에 감사드립니다. – Anup