📄 talkudpclient.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 + -