/*
需求: 在dos命令行里模拟一个聊天程序
有收数据的部分,和发数据的部分,这两部分需要同时执行。
那就需要用到多线程技术。
一个线程控制收,一个线程控制发。
*/
import java.io.*;
import java.net.*;
class ChatDemo
{
public static void main(String[] args) throws Exception
{
DatagramSocket sendSocket = new DatagramSocket();
DatagramSocket receSocket = new DatagramSocket(10011);//接收端要定义好所监听的端口,因为发送端设置的发送目的就是这个端口
new Thread(new Send(sendSocket)).start();//开启两个线程
new Thread(new Rece(receSocket)).start();
}
}
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)//读取键盘录入的字符串
{
byte[] buf = line.getBytes();//把这字符串转成字节数组
DatagramPacket dp = /*定义数据报包,含字节数组与目的地ip是广播地址192.168.0.255