如图,用javac命令编译就提示找不到符号
用eclipse是正常的
代码如下:
发送端:
package cheat;
import java.io.*;
import java.net.*;
class cheatUDP1 implements Runnable{
private DatagramSocket ds;
public cheatUDP1(DatagramSocket ds){
this.ds=ds;
}
public void run(){
try{
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
String line=null;
while((line=buf.readLine())!=null){
byte[] by=line.getBytes();
DatagramPacket dp=new DatagramPacket(by,by.length,InetAddress.getByName(InetAddress.getLocalHost().getHostAddress()),1000);
ds.send(dp);
}
ds.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
接收端:
package cheat;
import java.net.*;
class cheatUDP2 implements Runnable{
private DatagramSocket ds;
public cheatUDP2(DatagramSocket ds){
this.ds=ds;
}
public void run(){
try{
while(true){
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
ds.receive(dp);
String name=dp.getAddress().getHostName();
String data=new String(dp.getData(),0,dp.getLength());
System.out.println("主机名:"+name);
System.out.println(data);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
测试程序:
package cheat;
import java.net.*;
public class cheatdemo {
public static void main(String[] args){
DatagramSocket send=null;
DatagramSocket recieve=null;
try{
send=new DatagramSocket();
recieve=new DatagramSocket(1000);
}catch(Exception e){
e.printStackTrace();
}
Thread t1=new Thread(new cheatUDP1(send));
Thread t2=new Thread(new cheatUDP1(recieve));
}
}