Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

アプレットとサーバーが通信する

http://www.hellohiro.com/http.htm
http://www.hellohiro.com/socket.htm
↑ このサイトによるとHTTP篇とソケット篇に分かれていますが、
アプレットではソケットで通信?はできないのでしょうか?

3

回答

6188

閲覧

3件の回答

評価

0

先の質問に返信するようにしましょう。

「アプレット ソケット通信」で検索してみましょう。
なお、http通信も、内部的にはソケット通信です。

評価

0

http://kamoland.com/comp/jipc1.html
↑このページを見ながらやってみましたができませんでした。
アプレットの方はエラーが出たので書き直したがこれが原因かもしれません。サーバー側は何も直してません。
サーバーはtomcat5.5を使ってます。


// 簡単なApplet-Servlet間通信
// アプレット側

import java.applet.*;
import java.io.*;
import java.awt.*;
import java.net.*;
import java.awt.event.*;
import javax.swing.*;

public class Client extends JApplet 
{
    
    JTextField textfield;
    JButton start_button;
    JLabel label;

    //イベントハンドラ
    EventHandler eh;

    public void init() 
    {
        //ボタンの作成とテキストフィールド
        start_button = new JButton("送信");
        textfield = new JTextField();
        label = new JLabel("サーバーからのメッセージ");

        //ボタンイベントの登録
        eh = new EventHandler();
        start_button.addActionListener(eh);

        //パネルに登録
        Container c = getContentPane();
        c.setLayout(null);

        //位置の調整
        start_button.setBounds(30,30,100,20);
        textfield.setBounds(30,60,100,20);
        label.setBounds(30,90,100,20);

        c.add(start_button);
        c.add(textfield);
        c.add(label);
    }

    class EventHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            try
            {
                URL url = new URL("http:localhost:8080/HelloServlet");
                String req = textfield.getText();
                req = new String(req.getBytes("SJIS"),"8859_1");

                URLConnection ucon = url.openConnection();
                ucon.setDoOutput(true);
                ucon.setDoInput(true);
                ucon.setUseCaches(false);

                DataOutputStream dos = new DataOutputStream( ucon.getOutputStream() );
                dos.writeUTF(req);
                dos.flush();
                dos.close();

                DataInputStream dis = new DataInputStream( ucon.getInputStream() );
                String result = dis.readUTF();
                dis.close();

                label.setText(result);
            }
            catch(Exception ee)
            {
                ee.printStackTrace();
            }
        }
    }
}

評価

0

開くURLがおかしいようですが。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。