请大牛帮忙看看哪里出了错
/*
编写一个聊天程序。
有收数据的部分和发数据的部分。
这两部分需要同时执行。
那就需要用到多线程技术。
一个线程控制收,一个线程控制发。
因为收和发动作是不一致的,所以要定义两个run方法。
而且这两个方法要封装到不同的类中。
*/
import java.io.*;
import java.net.*;
class  Send implements Runnable
{
	private DatagramSocket ds;
	public 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("113.251.218.70"),11000);
				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(String[] args)throws Exception
	{
		DatagramSocket sendSocket = new DatagramSocket();
		DatagramSocket receSocket = new DatagramSocket(11000);
		new Thread(new Send(sendSocket)).start();
		new Thread(new Rece(receSocket)).start();
	}
}
编译显示第三十六行出错,
错误,无法访问的语句  byte[] buf = line.getBystes();
------解决方案--------------------这代码乱的,把24行的那个分号取掉。编程习惯太不好了。
while ((line = bufr.readLine()) != null) {
				if ("886".equals(line)) {
					break;
				}
				byte[] buf = line.getBytes();
				DatagramPacket dp = new DatagramPacket(buf,
						buf.length,
						InetAddress.getByName("113.251.218.70"), 11000);
				ds.send(dp);
			}
以后这么写,有if全加上{},别写那么随意,一看就是初学者的写法。