当我尝试从全局服务器读取响应时,为什么我的java客户端总是返回null?

时间:2018-01-07 20:08:51

标签: java python

这会向服务器发送一条消息,响应应该返回“ok”。我知道这是有效的,因为我也在python中尝试过,它可以100%运行。但在java中,我无法得到回复。

 String host = "(name of global host)";
  s.connect(new InetSocketAddress(host, 80));

System.out.println("Connected");

    OutputStream os = s.getOutputStream();
    OutputStreamWriter osw = new OutputStreamWriter(os);
    BufferedWriter bw = new BufferedWriter(osw);
    bw.write("(insert message to sent to server here)");
    bw.flush(); 

BufferedReader brz = new BufferedReader(new InputStreamReader(s.getInputStream()));
        String t;
        while((t = brz.readLine()) != null){
        System.out.println(t);
         }
        brz.close();
s.close();
// The loop doesn't even run because it returns null

这是python代码,与java one不同,它的工作方式非常好

     HOST, PORT = "(host name)", 80
 self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    self.sock.settimeout(10)
    self.wrappedSocket = ssl.wrap_socket(self.sock)

    initial_connection_payload = '(text to send to server)'.encode('UTF-8')

    self.wrappedSocket.connect((HOST, PORT))
    self.wrappedSocket.send(initial_connection_payload)
    response = self.wrappedSocket.recv(16384).decode('UTF-8')
    if "ok" not in response:
        self._log(response, "[!] Could not connect to server: " + response)

    self._log("[+] Connected.")

所以我的问题是我在java中做错了什么?我甚至尝试过其他方法,例如printwriter dataoutputstream等,甚至尝试从扫描仪或仅仅是InputStream读取,但没有任何作用。任何帮助将不胜感激

0 个答案:

没有答案