ここから本文です

javaのnetworkプログラミングを作っているのですが、どうしてもコンパイルエラーが...

c01********さん

2010/5/1002:56:29

javaのnetworkプログラミングを作っているのですが、どうしてもコンパイルエラーが出てしまって困っています。
UDP/IPプロトコルを使って通信するのを作っています。
仕様
1、キーボードから文字列を1行うちこみ、

それを送信するプログラム(udp_snd)と受信するプログラム(udp_rec)の二つ
2、udp_sndでは、送信先のドメイン名をプログラムの引数で指定できるようにする
3、udp_sndでは、1行文を1つのパケットとして送信する
4、udp_recでは、送信した計算機のipアドレスと通信回数を[]にくくって表示し、これに続いて受信したメッセージを表示する
5、双方とも空行が打ちこまれたら終了する UDPのポートは9000を使用
端末をふたつ用意し通信する。

import java.net.*;
import java.io.*;
class udp_snd{
public static void main(String arg[])throws IOException{
BufferedReader br
=new BufferedReader(new InputStreamReader(System.in));
String str;
String hostname;
InetAddress dest=null;//パケットの送り先
int port=0;//ポート番号
byte[]buf;//送信すべきデータがはいる配列
DatagramSocket sock=null;//ソケット
DatagramPacket packet=null;//送信パケット
hostname=arg[0];//検索するドメイン名をhostnameにセット
try{
sock=new DatagramSocket();
}
catch(Exception e){
}
try{
dest=InetAddress.getByName(hostname);
port=9000;
}
catch(Exception e){
}
do{
str=br.readLine();
}
while(br.equals(" "));
str= br.readLine();
buf=str.getBytes();
try{
packet=new DatagramPacket(buf,buf.length,dest,port);
//送信するためのパケットが作成される
sock.send(packet);//socketが送信される
}
catch(Exception e){
System.out.println(e);
}
}
}


import java.net.*;
class udp_rec{
public static void main(String arsg[]){
int port;
int len;
byte[]buf=new byte[1024];//受信したデータを保持するバッファ
DatagramPacket packet=null;//受信パケット
DatagramSocket sock=null;
String str;//文字列に変換された受信データを保持する変数
port=9000;
try{
sock=new DatagramSocket(port);
}
catch(Exception e){
packet=new DatagramPacket(buf,1024);
//以下の処理は、受信の度に繰り返し実行する
}
do{
str=new String();
}
while(str.equals(" "));
str=new String();
try{
sock.receive(packet);
}
catch(Exception e){
//受信したパケットからデータを取り出す
len=packet.getLength();
str=new String((buf,0,len);
}
}
}

補足str=new String((buf,0,len);
のところは書き間違いでした。
str=new String(buf,0,len);でもコンパイルエラーがででしまいます。
}

閲覧数:
407
回答数:
2
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

shi********さん

編集あり2010/5/1017:55:06

もう補足を使ってしまっているので、仕方ないですが、
こういうことを聞きたいのであれば、ちゃんとエラーメッセージを
付けましょう。そうでないと、わけがわからないですよ。

もしかして、このプログラム、一つのファイルにしていますか?
それならば、2つ目のクラスの前のimportでコンパイルエラー
が出ると思いますよ。
それ以外はコンパイルエラーはありませんよ。

質問した人からのコメント

2010/5/10 19:56:58

降参 すいません。
もう一回質問するので、もう一度お知恵をお貸しください。
ちなみにプログラムは二つに分けています。

ベストアンサー以外の回答

1〜1件/1件中

llo********さん

2010/5/1004:20:19

プログラムの内容があっているかどうかはみてないですが、コンパイルエラーは、最後の方の

str=new String((buf,0,len);



str=new String(buf,0,len);

ではないでしょうか?(無駄なカッコがある)
それ以外は文法的にはあっていると思います。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる