2010-11-30 16 views
0

http要求メッセージをサーバーに送信するにはクライアントが必要ですが、http 1.1を使用してUDPで行う方法はわかりませんJavaでUDP接続を持つサーバーにHTTP要求メッセージを送信するようにクライアントをプログラミングする

メソッドフィールドには特定の単語、URLフィールドには特定の名前、バージョンフィールドには特定の整数が必要です。

したがって、メソッドフィールドに "inform"、urlフィールドに "host1"、バージョンフィールドに40000を持つhttp要求メッセージを送信するにはどうしたらよいですか?

これは私が今使っているものですが、httpを使わないので変更方法はわかりません。

BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); 
     DatagramSocket clientSocket = new DatagramSocket(); 
     InetAddress IPAddress = InetAddress.getByName("THIS-PC"); 
     byte[] sendData = new byte[128]; 
     byte[] receiveData = new byte[128]; 
     System.out.println("Enter:"); 
     String request ="INFORM "; 
     String sentence = inFromUser.readLine(); 
     // request.concat("/r/n"); 
     request.concat(sentence); 
     // request.concat("/r/n"); 
     sendData = sentence.getBytes(); 
     DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 40075); 

     clientSocket.send(sendPacket); 
     System.out.println("Packet sent"); 
     DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); 

     clientSocket.receive(receivePacket); 
     System.out.println("Packet received"); 
     String reply = new String(receivePacket.getData()); 

      System.out.println("FROM SERVER:" + reply); 
      clientSocket.close(); 
+2

本当に* UDP経由でHTTPを送信しますか?または、HTTPを標準的な方法(TCP/IP経由)で使用したいだけですか? – BalusC

+1

HTTPには信頼できる転送が必要です。 UDPは信頼できるトランスポートではありません。 UDP over HTTPは使用できません。 HTTP over UDPのようなものを使用することができます。実際に何をしようとしていますか? –

+0

UDP経由でHTTPを送信する目的を説明できますか?あなたのサーバは、順序の乱れたパケットなどを処理する必要があるため、私にとっては大きな頭痛のように聞こえます。 –

答えて

0

(a)UDPを発するHTTPサーバーが必要です。あなたは本当にそれを持っていますか?

(b)このクライアントコードでHTTPプロトコルを実装する必要があります。私はそれをやろうとはしていない。あなたがしているのは、コンソールから直接読み取った行を送ることだけです。 HTTPはまったくありません。

1

HTTPプロトコル用のIEEE RFCを実装する必要がありますか?それとも、UDP上のシミュレーションですか?

HTTPは、TCP/IP経由で実行されるテキスト転送ベースのプロトコルです。 HTTPのデフォルトポートは80ですが、そのポートを介してデータグラムサービスを実行することはできます。

保証、順序、正しいシリアル化など、TCP/IPのいくつかの特定の有用な方法を失います。あなたは本当にそれをしなければなりませんか?

このようにしても、UDPを使用してそのポートをリッスンする「サービス」を作成する必要があります。すべてのWebサーバーは、デフォルトでRFCとして指定されているためTCPで動作します。

はまた、詳細情報については、これを読んで:

http://www.w3.org/Protocols/rfc2616/rfc2616.html

それとも、単にUDPを介してデータを送受信するシンプルなアプリをしたい場合は、ウェブ上でそれを行う方法についてのいくつかの例があります。

ご迷惑をおかけして申し訳ありません。

関連する問題