黑马程序员技术交流社区
标题:
关于聊天程序,代码编译不成功的问题
[打印本页]
作者:
走遍世界找寻你
时间:
2013-9-3 18:21
标题:
关于聊天程序,代码编译不成功的问题
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(192.168.1.254),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)
{
System.pout.println("接收失败");
}
}
}
class ChatDemo
{
public static void main(String[] args)
{
DatagramSocket sendSocket = new DatagramSocket();
DatagramSocket receSocket = new DatagramSocket(10002);
new Thread(new Send(sendSocket)).atart();
new Thread(new Rece(receSocket)).start();
}
}
错误提示如下:
:\javalianxi>javac 1605.java
605.java:23: 需要 ')'
DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(192.168.1.254),10002);
^
605.java:23: 需要 ';'
DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(192.168.1.254),10002);
^
605.java:23: 非法的表达式开始
DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(192.168.1.254),10002);
^
605.java:23: 需要 ';'
DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(192.168.1.254),10002);
^
605.java:23: 不是语句
DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(192.168.1.254),10002);
^
605.java:23: 需要 ';'
DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(192.168.1.254),10002);
^
错误
就这么一句代码怎么这么多错误,求解答!
作者:
依旧
时间:
2013-9-3 18:42
DatagramPacket dp = new DatagramPacket(buf,buf
ngth,InetAddress.getByName(
192.168.1.254
),10002);
加粗部分的Ip地址加个引号即可,
这个方法接收的是一个字符串:getByName(String str),
还有你那异常输出语句应该是 System.out.println("接收失败");
而你多加了一个p System.pout.println("接收失败");
作者:
武嘉豪
时间:
2013-9-3 18:46
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("192.168.1.254"), 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)
{
System.out.println("接收失败");
}
}
}
class ChatDemo
{
public static void main(String[] args) throws Exception
{
DatagramSocket sendSocket = new DatagramSocket();
DatagramSocket receSocket = new DatagramSocket(10002);
new Thread(new Send(sendSocket)).start();
new Thread(new Rece(receSocket)).start();
}
}
这回差不多咯~
作者:
EYE_SEE_YOU
时间:
2013-9-4 13:26
代码可以放进代码区,这样阅读起来更方便
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2