
以下(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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JAVAアプレットのサウンド機能...
-
Javaのアプレットについて
-
getConnection( )メソッドの戻り値
-
フェードアウト時にぶちっと画...
-
負の数を取得するには?
-
GOF本のStrategyのJava版での質...
-
javaの課題プログラムでどうし...
-
Androidでこのエラーを解決した...
-
画像がうまく表示されません
-
javaの同期について
-
フレームを表示できないのです...
-
コードがよくわかりません。
-
<identifier>エラーについて
-
C#でのDLLのメソッドの作り方
-
プログラムミス?
-
インターフェイスは何故必要か
-
javaの同期について
-
C#クラスについて教えてください
-
テキストフィールドに入力した...
-
javaのrepaint()について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
ボタンの複数割り当てについて
-
C#で、あるクラスのメンバーす...
-
C#で別のFormへ複数の値を返そ...
-
C# WinForm のDataGridView Cel...
-
C# visibleプロパティをfalseに...
-
C# 矢印キーの取得
-
C# MouseHoverを何度も呼ぶには
-
Junitテストでvoid戻り値メッソ...
-
C#でのWNetAddConnection3の使...
-
C#でキーイベントが発生しない...
-
C# DataGridView列カスタマイズ
-
C#から、C++で作成したdll内の...
-
画像ファイル操作方法
-
エンターキーを押すとOKボタン...
-
スレッド動かず
-
Java コレクション・ジェネリク...
-
なぜエラーになるのかがわかり...
-
マウスクリックで別のスレッド...
-
参照されない
おすすめ情報