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

📄 talkudpclient.java

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

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

⌨️ 快捷键说明

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