0

私は少し問題があります、私はプロジェクトを作っています、そして私はクライアントからサーバーにデータを送っています、サーバーはそれをmysqlデータベースに送ります。クライアントアプリケーションにクライアントタブと管理タブがあります。クライアントタブに「ユーザー名」と入力してサーバーに接続します。このユーザー名はサーバーに送信され、サーバーはテーブルユーザーのデータベースに保存されます。[管理]タブ(クライアントアプリケーション側)で、接続してデータベースの一部のデータを変更し、データベースに新しいデータを追加します。私の問題は次のとおりです。ステップバイステップ1。ユーザー名を入力し、接続を押します。ユーザー名文字列がサーバーに送信され、テーブルユーザー2のmysqlに保存されます。次に、[管理]タブに移動し、データを追加します。 mysqlに挿入されます(それは '

これが私がユーザー名を送信するクライアントからのコードです:

String name = client.nameField.getText();
        out = new PrintWriter (os, true); 
        out.println(name);

データを送信する[管理]タブのコードは次のとおりです。

DataOutputStream os = new DataOutputStream (socket.getOutputStream()); 

                String name = client.nameField.getText();
                String title = Configuration.titleField.getText();
                String question = Configuration.questionField.getText();
                String answer1 = Configuration.answer1Field.getText();
                out = new PrintWriter (os, true);

                out.println(title);
                out.println(question);
                out.println(answer1);

そして、サーバー側でデータを受信するコードは次のとおりです。

while(RunThread){

            String name;
            name = in.readLine();


           st.execute("INSERT INTO "+db+" .poll_users (name) VALUES ('" + name + "')");

            String title;
            title = in.readLine();
            if(title!=null)
            st.execute("INSERT INTO "+db+" .poll_titles (title) VALUES ('" + title + "')");

            String question;
            question = in.readLine();
            if(question!=null)
            st.execute("INSERT INTO "+db+" .poll_questions (question) VALUES ('" + question + "')");

            String answer1;
            answer1 = in.readLine();
            if(answer1!=null)
            st.execute("INSERT INTO "+db+" .poll_answers (answer) VALUES ('" + answer1 + "')");

それを機能させる方法は?助けてくれてありがとう

4

2 に答える 2

0

あなたは行方不明ですか:

out.println(name);

タイトルを印刷する前に?

于 2012-04-05T22:05:12.107 に答える
0

たぶん、クライアントサーバープロトコルをメッセージの順序に依存するものからより明確なものに変更する必要がありますか?より堅牢になる可能性があります。

たぶんあなたはこのような行を送るべきです:

 out.println("Name:" + name);
 out.println("Title:" + title);
 out.println("Question" + question);
 out.println("Answer" + answer1);

その後、任意の順序でフィールドを受け取ることができます。

于 2012-04-05T22:15:12.350 に答える