以下(senderTest)のプログラムを適切に繰り返すように書き換えたいのですが、どうしてもうまくいきません。while文で自分なりに繰り返した結果は同じ文字を送り続けるというものになってしまいました。
本来は送信して、待機状態になりまた新たに文字を入力したら送信、また待機というようにしたいのですがどうしたらよいでしょうか?
どうかよろしくおねがいします。
********************************
senderTest
import java.io.*;
import java.net.*;
public class senderTest
{
private InetAddress address;
private int port = 13400;
private DatagramSocket socket;
public senderTest() throws Exception
{
this.address = InetAddress.getByName("192.168.0.16");
this.socket = new DatagramSocket();
}
public void send(String s) throws Exception
{
byte buffer[];
buffer = s.getBytes("Shift_JIS");
DatagramPacket packet
= new DatagramPacket(buffer, buffer.length, this.address, this.port);
this.socket.send(packet);
}
public static void main(String[] args)throws IOException
{
senderTest sender1;
System.out.println("↓送信する文字を入力してください↓");
String name = ("健児>");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String msg = name +br.readLine();
try
{
sender1 = new senderTest();
sender1.send(msg);
System.out.println("『" + msg + "』を送信しました。");
}
catch (Exception ex)
{
System.err.println("Error: " + ex.getMessage());
}
}
}
********************************
No.3ベストアンサー
- 回答日時:
入力文字列を繰り返しUDP送信するプログラムということですが、
このようなプログラムでどうでしょう。
import java.net.InetAddress;
import java.net.DatagramSocket;
import java.net.DatagramPacket;
import java.io.BufferedReader;
import java.io.InputStreamReader;
class Sender
{
private InetAddress peeraddr;
private final int peerport = 60000;
private DatagramSocket sock;
public Sender() throws Exception
{
peeraddr = InetAddress.getByName("localhost");
sock = new DatagramSocket();
}
/*文字列を1回送信*/
public void send(String msg) throws Exception
{
byte buffer [] = msg.getBytes();
DatagramPacket packet = new DatagramPacket(buffer , 0 , buffer.length , peeraddr , peerport);
sock.send(packet);
}
/*入力文字列を繰り返し送信*/
public void repeat_send() throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true)
{
String msg = br.readLine();
this.send(msg);
if(msg.equals("exit")) break;
}
}
public void close() throws Exception
{
sock.close();
sock = null;
}
}
public class SenderTest
{
public static void main(String [] args) throws Exception
{
Sender s = new Sender();
s.repeat_send();
s.close();
}
}
No.2
- 回答日時:
> その場合どこをどのように変更すればよろしいのでしょうか?
ちょっと時間がないので、擬似コードから類推してください:
/*擬似コード*/
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
SenderTest sender1 = new SenderTest();
String msg;
while (true){
msg = name +br.readLine();
DatagramPacket packet = sender1.send(msg); // packetを返す仕様にする
socket.receive(packet);
showServerMessage(packet); // 自作の新メソッド
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java java final 1 2022/06/10 22:49
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/2】 国民的アニメ『サザエさん』が打ち切りになった理由を教えてください
- ・ちょっと先の未来クイズ第5問
- ・【お題】ヒーローの謝罪会見
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LVM_SETITEMSTATEでListViewの...
-
大量のデータを読み込んで表示...
-
ボタンの複数割り当てについて
-
デバッグ中の変数参照について
-
[C#.net]スレッド化された別フ...
-
指定した座標の色を得るためには
-
struts2のchainで値の受け渡し...
-
C#で、あるクラスのメンバーす...
-
決められて時間が経過するとア...
-
C# 親フォームで指定した値を...
-
Jpanelにグラフを書くプ...
-
C# visibleプロパティをfalseに...
-
JButtonの画像をactionPerforme...
-
C#でのWNetAddConnection3の使...
-
VBAで配列の計算
-
ORA-01858: 数値を指定する箇所...
-
オブジェクトの中のプロパティ...
-
[JAVA]try 内の変数を外で!?
-
C言語のポインターに関する警告
-
IF関数でEmpty値を設定する方法。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#で、あるクラスのメンバーす...
-
Junitテストでvoid戻り値メッソ...
-
C#でのWNetAddConnection3の使...
-
C# 矢印キーの取得
-
ボタンの複数割り当てについて
-
C# DataGridView列カスタマイズ
-
コンボボックスを使う時の警告
-
ユーザーコントロールを動的に...
-
アプレットでマウスイベントが...
-
C#で別のFormへ複数の値を返そ...
-
LVM_SETITEMSTATEでListViewの...
-
C#,listBoxのItem追加について...
-
C# MouseHoverを何度も呼ぶには
-
C# visibleプロパティをfalseに...
-
C# 親フォームで指定した値を...
-
C# 半角カナの文字化けについて
-
決められて時間が経過するとア...
-
javaを用いて,a列,b列の空白...
-
Processingでマウスクリックで...
おすすめ情報