通过UDP技术实现DOS版的聊天功能
1、确定思路:
1.编写发送端
2.编写接收端
3.运行程序
2、接收端的编写及思路:
1.通过UDP socket,建立端点服务
2.定义数据包用于储存数据
3.通过receive方法将接收到的数据存入数据包中
4.通过包的方法获取数据
5.打印在控制台上
package UDP;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class Udpreceive {
/**
* @param args
*/
public static void main(String[] args)throws Exception {
// TODO Auto-generated method stub
//1.通过UDP socket,建立端点服务
DatagramSocket ds=new DatagramSocket(10000);
//2.定义数据包用于储存数据
byte[] buf=new byte[1024];
//3.通过receive方法将接收到的数据存入数据包中
DatagramPacket dp=new DatagramPacket(buf,buf.length);
ds.receive(dp);
//4.通过包的方法获取数据
String ip=dp.getAddress().getHostAddress();
String data=new String(dp.getData(),0,dp.getLength());
int port=dp.getPort();
//5.打印在控制台上
System.out.println(ip+"::"+data+"::"+port);
}
}
3、编写发送端及思路:
1.创建UPD服务,实现Socket套接字,通过DatagramSocket对象
2.确定数据并封装成数据包,DatagramPacket(byte[] buf, int length, InetAddress address, int port)
3.通过Soket服务将已有数据包发送出去,通过send()方法
4.关闭数据源
package UDP;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class Udpsend {
/**
* @param args
* @throws SocketException
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
//1.创建UPD服务,通过DatagramSocket对象
DatagramSocket ds=new DatagramSocket(8888);
//2.确定数据并封装成数据包,DatagramPacket(byte[] buf, int length, InetAddress address, int port)
byte[] buf="你好,哈哈!!".getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("183.47.66.228 "),10000);
//3.通过Soket服务将已有数据包发送出去,通过send()方法
ds.send(dp);
//4.关闭数据源
ds.close();
}
}
4、通过点击那个红色圈圈里的绿色按钮,运行两段代码可可看到,聊天的结果,实现了发送和接收!如果你想实现像QQ那样的聊天效果,只需要在里边的代码里加一段循环即可,这里就不做演示啦!
