怎么不能实现通信咧???
package com.baidu.www;
import java.net.*;
import java.io.*;
public class UDPClient {
//客户端向服务器端发数据报
public static void main(String[]args)throws Exception{
DatagramSocket ds= new DatagramSocket(8001);//本地端口
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("客户端正在等待键盘输入数据+++");
while(true){
String str=br.readLine();
byte[] bf=str.getBytes();
DatagramPacket dp=new DatagramPacket( bf, bf.length,8000 );
ds.send(dp);
if((str==null)||str.equals("bye"))
break;
}
ds.close();
}
}
package com.baidu.www;
import java.net.*;public class UDPServer {
public static void main(String[] args)throws Exception  {
byte[] bf=new byte[1024];
       DatagramSocket ds= new DatagramSocket(8001);
//DatagramPacket dp=new DatagramPacket(bf,bf.length);
System.out.println("服务器端正在等待客户端发送数据+++++");
while(true){
DatagramPacket dp=new DatagramPacket(bf,bf.length);
ds.receive(dp);
String st=new String(dp.getData(),0,dp.getLength());
System.out.println(st);
if((st==null)||st.equals("bye"))
break;
}
ds.close();
}
}

解决方案 »

  1.   

    不行啊!!我这已经是br.readLine()了啊!;而
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    了,所以我觉得问题应该不是出在那儿!!
      

  2.   

    该用这个构造方法,
    DatagramPacket(byte[] buf, int length, InetAddress address, int port) 
    构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。
    DatagramPacket dp=new DatagramPacket(bf,bf.length);
    改为:
    InetAddress address = InetAddress.getByName("127.0.0.1");
    DatagramPacket dp=new DatagramPacket(bf,bf.length,address,8001);
      

  3.   

    终于给你搞好了
    import java.net.*;
    import java.io.*;
    public class BaiDuUDPClient {
    //客户端向服务器端发数据报
    public static void main(String[]args)throws Exception{
    DatagramSocket ds= new DatagramSocket(8000);//本地端口
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    System.out.println("客户端正在等待键盘输入数据+++");
    while(true){
    String str=br.readLine();
    byte[] bf=str.getBytes();
    DatagramPacket dp=new DatagramPacket( bf, bf.length,new InetSocketAddress("127.0.0.1", 8001) );
    ds.send(dp);
    if((str==null)||str.equals("bye"))
    break;
    }
    ds.close();
    }
    }import java.net.*;public class BaiDuUDPServer {
    public static void main(String[] args)throws Exception {
    byte[] bf=new byte[1024];
    DatagramSocket ds= new DatagramSocket(8001);
    //DatagramPacket dp=new DatagramPacket(bf,bf.length);
    System.out.println("服务器端正在等待客户端发送数据+++++");
    while(true){
    DatagramPacket dp=new DatagramPacket(bf,bf.length);
    ds.receive(dp);
    String st=new String(dp.getData(),0,dp.getLength());
    System.out.println(st);
    if((st==null)||st.equals("bye"))
    break;
    }
    ds.close();
    }
    }