Runnable接口的实现,构造函数函数错在哪?该怎么解决
Runnable接口的实现,构造函数函数错在哪?
程序功能:编写一个控制台的聊天程序,有接受部分或发送部分,这两部分用到多线程。这两个方法封装到补个类中。然后编译器报错,说new Thread(new Send(sendSocket) ).start();的Send的构造函数错误。这个构造函数错在哪丫?
------解决思路----------------------
使用了私有变量做构造器的参数
import java.net.*;
import java.io.*;
class Send implements Runnable{
private DatagramSocket ds;
public void send(DatagramSocket ds){
this.ds = ds;
}
public void run(){
try{
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in) );
String line = null;
while( (line=bufr.readLine() ) != null ){
if("886".equals(line) )
break;
}
byte[] buf = line.getBytes();
DatagramPacket dp = new DatagramPacket(
buf, buf.length, InetAddress.getByName("192.168.1.103"), 10002);
ds.send(dp);
}catch(Exception e){
throw new RuntimeException("发送端失败");
}
}
}
class Rece implements Runnable{
private DatagramSocket ds;
public Rece(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 ip = dp.getAddress().getHostAddress();
String data = new String(dp.getData(), 0, dp.getLength() );
System.out.println(ip+ ":"+ data);
}
}catch(Exception e){
throw new RuntimeException("接收端失败");
}
}
}
class ChatDemo{
public static void main() throws Exception{
DatagramSocket sendSocket = new DatagramSocket();
DatagramSocket receSocket = new DatagramSocket();
new Thread(new Send(sendSocket) ).start();
new Thread(new Rece(receSocket) ).start();
}
}
程序功能:编写一个控制台的聊天程序,有接受部分或发送部分,这两部分用到多线程。这两个方法封装到补个类中。然后编译器报错,说new Thread(new Send(sendSocket) ).start();的Send的构造函数错误。这个构造函数错在哪丫?
------解决思路----------------------
使用了私有变量做构造器的参数