/*
* 服务器端:
* 首先先搜索附近是否有信息
* 在通过判断端口号是否一致
* 接收包,在拆取
* 在发送一个包回去
*/
package www;
import java.io.IOError;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class server {
public static void main(String[] args) throws IOException {
DatagramSocket ds=new DatagramSocket(8888);//如果有人向服务器发信息,判断到相同端口号,就会拆下来
byte[] buf=new byte[1024];//包
int length=1024;//包的长度
DatagramPacket dp=new DatagramPacket(buf, length);//自己建立一个包,用来缓存
ds.receive(dp);//套接字接收信息,放到数据包里面
String str=new String(dp.getData(),0,dp.getLength())+"来自"+dp.getAddress().getHostAddress()+",端口:"+dp.getPort();
System.out.println(str);
String str2="Hello,World!\n";
DatagramPacket dp2=new DatagramPacket(str.getBytes(), str.length(),dp.getAddress(),dp.getPort());//自己建立一个包,用来缓存
ds.send(dp2);//套接字发送数据包
ds.close();
}
}
package tcp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class client {
public static void main(String[] args) throws IOException {
DatagramSocket ds=new DatagramSocket();
String str="Hello,world!";
DatagramPacket dp=new DatagramPacket(str.getBytes(), str.length(),
InetAddress.getByName("10.3.36.222"),9900);
ds.send(dp);
byte[] buf=new byte[1024];//包
int length=1024;//包的长度
DatagramPacket dp2=new DatagramPacket(buf, length);
ds.receive(dp2);//套接字接收信息,放到数据包里面
String str1=new String(dp2.getData(),0,dp2.getLength())+"来自"+dp.getAddress().getHostAddress()+",端口:"+dp.getPort();
System.out.println(str1);
ds.close();
}
}