黑马程序员技术交流社区
标题:
编译错误
[打印本页]
作者:
工善器
时间:
2013-10-20 20:37
标题:
编译错误
/*
编写一个程序,用来聊天
要求:有收数据的部分,有发数据的部分
这两部分需要同时执行
所以用到多线程的部分
一个程序控制收,一个程序控制发
因为收和发誓不一致的,所以要定义两个run方法。
而且这两个方法要封装到不同的类中
*/
package en.itcast.java.tools;
import java.awt.Dialog;
import java.io.*;
import java.net.*;
import javax.management.RuntimeErrorException;
class Send implements Runnable
{
private DatagramSocket ds;
//发送和接受数据包的套接字
public Send(DatagramSocket ds)
{
this.ds=ds;
}
//构造函数除了没有返回值,还没有什么?构造函数是有new关键字的
//this.ds=ds 到底是个什么结构呢,他可以在其他函数中使用么。
//这不是初始化么,初始化是构造器的本能呀
public void run()
{
try
{
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
String line =null;
while ((line=bufr.readLine())!=null) {
byte[] buf=line.getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.255"),10002);
ds.send(dp);
if("886".equals(line))
{
break;
}
}
}
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());
if("886".equals(data))
{
System.out.println(ip+"离开聊天室");
break;
}
System.out.println(ip+"---"+data);
}
}
catch(Exception e)
{
throw new RuntimeException("接收端失败");
}
}
}
public class ChatDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
DatagramSocket sendSocket=new DatagramSocket();
DatagramSocket receSocket=new DatagramSocket(10002);
new Thread(new Send(sendSocket)).start();
new Thread(new Rece(receSocket)).start();
}
}
作者:
工善器
时间:
2013-10-20 20:45
红色部分就是它定位的部分,我有点不理解,正在研究中 ,我有时候问问题并不是说想了好长时间,大家也看过我的帖子知道的,有的哥们被介意 ,把有的东西给大家一块看看那,我同时也在解决。
作者:
風諾
时间:
2013-10-20 20:55
复制你的代码,提示有异常,老毕说得好:
要么抛,要么try
作者:
murder_fol
时间:
2013-10-20 21:07
(1)DatagramSocket sendSocket=new DatagramSocket();
DatagramSocket receSocket=new DatagramSocket(10002);
会拋异常啊,要处理
(2)同时你send类 末尾少一个} 结束啊 ,检查清楚了
作者:
周志龙
时间:
2013-10-21 08:23
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:
http://bbs.itheima.com/thread-89313-1-1.html
作者:
工善器
时间:
2013-10-21 15:23
大括号缺失的具体位置?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2