- ベストアンサー
javaでのプログラミングで・・・
今、大学の課題で、javaで簡易ファイルの転送プログラムを作成しています。 サーバーとクライアントの両方を作成したのですが、追加課題の回答がわからないので、回答お願いします。 (1)特定の文字列でくくる以外の処理でデータ部分を区別できる方法を具体的に述べよ。 (2)サーバーとクライアント間で共通化できる部分はどこか。また、どのように利用するかを述べよ。 以上2つの質問の回答をお願いします。
- jacknorantan
- お礼率11% (2/17)
- Java
- 回答数3
- ありがとう数2
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
(1)#1の方が言われてように別のポートを使用する方法があります。これはFTPの転送プロトコルでも採用されています。 そのほかには、データをこれから送るときに、データのサイズを(例えば10000バイトなら10000という数値)を送り、その後に10000バイト分のデータを送る方法があります。但し、これは、送る前にそのサイズを送り側が知っている必要があります。 (2)共通できる部分はファイルの送信/受信を行う部分でしょう。クライアント側から送るだけではなく、サーバー側からクライアントでおくることもあれば、その部分は、かなり共通化できるでしょう。 又、回線(セッション)をオープン/クローズするところも、かなり共通の部分があるはずなので、その辺が共通化できるでしょう。 又、ファイルのI/O部分も共通化できるでしょう。
関連するQ&A
- socketプログラミングについて
C++でsocketの練習のためにソケットを開き、文字列の送信を行うだけのサーバクライアントプログラムを作成したのですが、どうも上手く動作してくれません。 クライアント→サーバへ文字列を送信する前に、 1.サーバがソケットを開き、9999ポートでアクセスを待つ 2.クライアントがソケットを作成し、サーバの9999ポートにアクセスする 3.クライアントが文字列をサーバへ送信し、サーバが文字列を表示 ということをしたいのですが、2の部分でつまずいています。 プログラムをネットワークに接続されているコンピュータ上で実行すると動作するのですが、(client 192.168.15.17 9999)単独でサーバ・クライアントを起動させ、localhost当てに接続(client localhost 9999)しようとしても「No route to host」と表示されて、接続すら出来ません。 ためしにサーバを起動させている状態で「telnet localhost 9999」とするとどうやらサーバに接続されているようです。 localhostでやる場合は特別なソケット操作が必要になるのでしょうか?
- ベストアンサー
- C・C++・C#
- クライアントがJAVAを使えるかどうか調べる方法
JAVAに関しては完全な初心者です。 クライアントがリモート認証サーバに認証される仕組みを構築しようとしています。認証サーバのJAVAのアプレット?のプログラムをクライアントダウンロードし、ブラウザ上でそのプログラムを実行し、認証サーバで認証、という仕組みを導入しようとしています。 このとき、 1.クライアントがJAVAを使えるかどうかを調べる方法はないでしょうか?(AcrobatReaderみたいになければダウンロード、みたいなイメージなのですが間違いでしょうか?) 2.そのサーバからのJAVAプログラムとクライアントのJAVAを動かすための環境と、バージョンが一致していないといけない、みたいなことはあるのでしょうか? 3.もし2があるのなら、クライアント側、サーバ側で気をつけないといけないことは何があるでしょうか?
- ベストアンサー
- Java
- JAVAで作るプログラムとは
HPに使うJAVAスクリプトの勉強をしたく、JAVAとスクリプトは違う事を知らずにJAVAの通信教育を申し込んでしまいました。 JAVAはサーバー側のプログラミング言語で、 スクリプトはクライアント側のスクリプト言語でブラウザ上で動作する。 申し込んだものは仕方ないので頑張ってJAVAを理解したいと思うのですが、 ネット上のJAVA講座を見ると最初にJAVAをインストールするとあります。 これはJAVAを作成するソフトのようなものですか? JAVAで作るプログラムとはOSのようなものですか? JAVAでプログラムを作ってHPの更新やスクリプトが作成できるのですか? そもそもJAVAで作るプログラムとはどのように利用するのか、 プログラムの意味がよく分かりません。 JAVAとスクリプトの違いはもう良いのでプログラムについて 分かりやすく教えてください。
- ベストアンサー
- Java
- 簡単なJavaプログラミングについて
今日からJavaを勉強し始めたものです。したの問題のプログラムを教えていただきたく投稿しました。急いでいるのでよろしければ回答お願いします。 問題 「Aさんの今年の誕生日(5月22日)まで、今日からあと何日であるか」を表示するプログラムを作成。 その際、Aさん、誕生日、そして今年の誕生日までの日にちを表示してください。 (補足) 1. 特定の日のGregorianCalendarを生成するには、具体的な年月日を、数値か数値変数で与える必要があります。 2. 特定の日にちが、その年の何日目かを知るには、 calendar.get(Calendar.DAY_OF_YEAR) という文を用います。 3. 今日の日にちと、誕生日の日にちでの情報を使えば、その日にちの差を計算できます。
- 締切済み
- Java
- 異なる言語間でのソケット通信について
簡単なネットワークプログラムを作成して、ソケット通信の確認をしています。 クライアントとサーバが両方ともにC++の場合と、両方ともにJavaの場合で、正常に通信が行われていることは確認しました。 そこで、クライアントでC++のプログラムを動かし、サーバでJavaのプログラムを動かしてみたのですが、うまくいきませんでした。 (ポート番号を合わせたので、相互接続は出来てるみたいですが、データが渡ってきませんでした。OSはクライアント/サーバともに、Windowsです。) 言語が異なる場合の、ソケット通信について良いサイトをご存知でしたら、教えていただけないでしょうか?
- ベストアンサー
- Java
- javaによるソケット通信
こんばんわ. 現在悩んでいる事があります. あるプログラムと別のプログラム同士で通信を行い互いに影響を与えるようなプログラムは作成可能でしょうか. 例えば,一元的に全体を管理するコントローラがあり,コントローラからの命令で別のプログラムが動作する,コントローラはそのプログラムが動作中であることを知ることができる,といったプログラムを作成したいと思っています. これらを別のプロセス(hello.javaとworld.javaのように)で行いたいと考えています. こういったことはjavaによるソケット通信で行えるのでしょうか. 行えるのならどのように行えばいいのでしょうか?私の考えでは.ソケット通信でやるなら,コントローラがクライアントでその下に位置するプログラムがサーバということになると思いますが・・いまいちよくわかりません. ご存知の方がおられましたらご教授お願いいたします.
- 締切済み
- Java
- [Java]プログラミング初心者なため解りません。
はじめまして。 大学でJavaの課題を出されたのですが、プログラミング初心者なため方法がわかりません。どなたか助けていただきたいです。 課題 まず、以下のようなファイル(test.dat)を作成する 1 2 3 4 5 6 7 8 9 10 このファイルを読み込み、次のような結果をファイル(kekka.dat)として出力するプログラムを作成せよ。 1 + 2 = 3 3 + 4 = 7 5 + 6 = 11 7 + 8 = 15 9 + 10 = 19 なんとか自力でファイルの入出力を行うことはできたのですが、文字列を操作して出力する方法がわかりません。 どなたか教えていただけないでしょうか。 よろしくお願いします。
- ベストアンサー
- Java
- Javaで端末を操作
サーバ側がらクライアント側へファイルを転送し、 UserModeLinuxを起動するというプログラムを作成しています。 ファイルを転送するまでは完了したのですが UserModeLinxuを起動するためには クライアント側の端末で 「linux.uml ubd0=uml-root-hardy umid=uml1」 と入力する必要があります。 これをどのように行えばよいかまったくわかりません。 これを使ったらどうか。こんなプログラムがあるなど 何でもいいので実現するためにアドバイスいただけないでしょうか。 よろしくお願いします。
- ベストアンサー
- Java
- Javaのコンパイルについて
どうでもいいことかも知れませんが少し気になったので質問します。以下のようなプログラムを作成しました。 (1) Client.java main()有り、main内でServerのインスタンス作成 (2) Server.java main()無し、インターフェイスの定義のみ (3) ServerImpl.java main()有り、main内で自分自身(ServerImpl)のインスタンス作成 いつもはフォルダ内でjavac *.javaとコンパイルしてきたのですが、たまたま今日は一つずつコンパイルしてみました。一ファイルずつコンパイル出来るものかと思っていたのですがそうではなく、 (2)は単独でコンパイル出来る。 (1)と(3)は単独でコンパイル出来ない。((1)は(2)と同時にコンパイルする必要がある。(3)は(2)と同時にコンパイルする必要がある。) であることを初めて知りました。つまり関連するクラスは一緒にコンパイルしなければならないということだと思うのですが、普通は関連するjavaファイルだけのMakefileをそれぞれ作るのでしょうか?それも大変だと思うのですが。。それともjavac *.javaのように一括でコンパイルするのが普通なのでしょうか?もし毎回全ファイルをコンパイルすると、修正のないものまでコンパイルしてしまうことになると思いますがそういうものなのでしょうか?質問がちょっと意味不明で恐縮ですが一人で小さなプログラムを作成したことしかないので、会社などで大規模なプログラムを作成している現場では普通どうやっているものか知りたくて質問しました。
- ベストアンサー
- Java