UDP实现聊天

UDP网络编程

UDP不区分客户端和服务器端

这里客户端表示数据发送方,服务器表示数据接收方

package UDPcode;
​
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.nio.charset.StandardCharsets;
​
public class UdpClient {
   public static void main(String[] args) throws Exception {
       //1,建立一个socket
       //在这里为client的socket附上一个端口号,也可以用recieve()接受消息
       DatagramSocket socket = new DatagramSocket();
       //2,建个包,包括数据,IP地址,端口号,并把这些东西绑定到包上
       String msg="服务器你好,我叫阿伟";
       InetAddress localhost = InetAddress.getByName("localhost");
       int port=9090;
       //绑定到包上
       DatagramPacket packet=new DatagramPacket(msg.getBytes(),0,msg.getBytes().length,localhost,port);
​
       //3,发送包
       socket.send(packet);
​
  }
}
​
package UDPcode;
​
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
​
public class UdpServer {
   public static void main(String[] args) throws Exception {
       //开放端口
       DatagramSocket socket=new DatagramSocket(9090);
       //接收数据包
       byte[] buffer=new byte[1024];
       DatagramPacket packet=new DatagramPacket(buffer,0,buffer.length);
​
       //recieve()一个阻塞式接受,类似于sout,不从键盘读取到数据就不跳到下一步
       socket.receive(packet);
​
       System.out.println(packet.getAddress());
       System.out.println(new String(packet.getData(),0,packet.getLength()));
​
       //关闭连接
       socket.close();
​
  }
}
​

 

 

posted @ 2021-10-13 21:44  木马伊人  阅读(114)  评论(0)    收藏  举报