私はソケットを使用してサーバとのストリーミング接続を確立しています。ソケットを作成することによって、ソケットを使用してサーバーに要求を送信しようとしました。私が使用する方法に関係なく、要求はサーバーによって受信されません。これらは私がリクエストを送信するために使用したメソッドです。javaでソケットを使用してサーバにリクエストを送信する
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println(query);
または他の一つは、私が送信しようとしている要求は、このようなものである
out = new ObjectOutputStream(connection.getOutputStream());
out.writeObject(msg);
out.flush();
です:私はこのクエリを送信すると、使用してはるかに簡単であることを知っている
String query = String.format("cmd=%s&version=%s", "handshake", "1.0");
Httpコネクションですが、これが完了しなければならない方法です。ですから、これで私を助けてください。 これはでHTTPConnectionが
String charset = "UTF-8";
String query = String.format("cmd=%s&version=%s", "handshake", "1.0");
String charset = "UTF-8";
URL url = new URL("serveraddress:8080");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
conn.connect();
OutputStream output = conn.getOutputStream();
output.write(command.getBytes(charset));
InputStreamReader content = new InputStreamReader(conn.getInputStream());
String result ="";
int c = content.read();
while (c != -1) {
result = result + ((char) c);
c = content.read();
}
Log.v(logTag, "Received: [" + result + "]");
コマンドであり、これは私がソケット接続が開かログサーバに応じ
URL url = new URL("serveraddress:8080");
String server_name = url.getHost();
int port = url.getPort();
Socket socket = new Socket(server_name, port);
String query = "post /swarm HTTP/1.1\nHost: serveraddress\n" +
"content-length: 27\nkeep-alive: 300\nconnection: keep-alive\n\n" +
"cmd=handshake&version=1.0\n";
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println(query);
を動作しませんでしたソケットにやったし、すべての要求
を取得せずに閉じたものです
サーバーがリッスンしているポートにtelnet接続できますか? – lobster1234
私はhttpconnectionを使用して適切な返事を得ました、あなたはソケットを使用して異なると思いますか?私は、ポートが正常であるようにhttp接続が動作している場合は意味します。右? – Daniel
はい、ポートは大丈夫です。あなたはソケットを使用するときに何か例外を見ていますか? – lobster1234