⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 talkudpserver.java

📁 基于UDP实现客户端和服务器端的互发信息(服务器端)
💻 JAVA
字号:
//这是基于UDP协议的网络聊天程序的服务器端
import java.io.*;
import java.net.*;

public class TalkUDPServer
//单客户机制
{
     public static void main(String args[]) throws Exception
     {
          
          try
          //由于clientSocket生成和关闭都会出错,因此需要进行异常处理
          {
               DatagramSocket serverSocket = new DatagramSocket(55555);
               //用DatagramSocket创建一个端口
               System.out.println("This is Server! Welcome!");
               //提示这是服务器端
               byte[] receiveData = new byte[128];
               //声明一个DatagramPacket对象,参数分别给出接收数据的byte数组和长度
               byte[] sendData = new byte[128];
               //声明一个DatagramPacket对象,参数分别给出发送数据的byte数组和长度               
               while(true)
               //服务器开始循环
               {
                    DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
                    //声明一个DatagramPacket对象,用于接收客户端端发送过来的数据
                    serverSocket.receive(receivePacket);
                    //接收服务器端发送过来的数据
                    String sentence = new String(receivePacket.getData());
                    //将接收到的数据转化成字符串
                    System.out.println("Client->Server: " + sentence);
                    //输出字符串
                    InetAddress IPAddress  = receivePacket.getAddress();
                    //获取客户端的IP地址
                    int port = receivePacket.getPort();
                    //获取客户端的端口号
                    BufferedReader toClient = new BufferedReader(new InputStreamReader(System.in));
                    //由系统标准输入设备构造BufferedReader对象
                    sentence = toClient.readLine();
                    //从系统标准输入读入一字符串
                    System.out.println("Server->Client:" +sentence);
                    //输出服务器发送给客户端的字符串
                    sendData = sentence.getBytes();
                    //实现类型转化              
                    DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
                    //声明一个DatagramPacket对象,包含要发送的数据内容,长度,IP地址及端口号
                    serverSocket.send(sendPacket);
                    //向客户端发送数据
               }
          }
          catch(Exception e)
          {
               System.out.println("Error: " + e);
               //出错,则打印出错信息
          }
     }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -