• 大小: 115KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: Java
  • 标签: java,udp  

资源简介

使用Java语言,利用UDP通信,实现客户端与服务器之间的通信,服务器支持多客户端连接,采用多线程技术。每当客户端向服务器发送请求后,服务器将为客户端发送文件。

资源截图

代码片段和文件信息

/**
 * 
 * 程序名称:基于UDP的航班显示系统的设计与实现(客户端)
 * 功      能:向服务器发送请求,并接收从服务器发来的数据
 * 作      者:MEICUOERSHIWO
 * 完成日期:2016年12月18号
 * 版本号:x1.0
 * 
 */
package my.exp5;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class FlightClient {
private String remoteHost = “localhost“; // 远程主机
private int remotePort = 9999; // 远程端口
private DatagramSocket clientDatagramSocket; // 用于与服务器通信
private DatagramPacket recieveDatagramPacket; // 用于接收服务器发来的数据

/*主函数*/
public static void main(String[] args) {
new FlightClient().talk();
}

/*构造函数*/
public FlightClient() {
try {
clientDatagramSocket = new DatagramSocket();
clientDatagramSocket.setReceiveBufferSize(16777216);
recieveDatagramPacket = new DatagramPacket(new byte[512] 512);
} catch (SocketException e) {
e.printStackTrace();
}
}

/*与服务器进行通信*/
private void talk() {
request(); // 向服务器发送请求
String string = null;
int countLineNum = 0;
while(!(string = recieve()).equals(“no data!“)) { // 接收服务器发来的数据
System.out.println(string);
countLineNum++;
}
System.out.println(“服务器总共发来“ + countLineNum + “行数据“);
clientDatagramSocket.close();
}

/*向服务器发送请求*/
private void request() {
byte[] req = “ready“.getBytes();
try {
DatagramPacket requestPacket = new DatagramPacket(reqreq.lengthInetAddress.getByName(remoteHost)remotePort);
clientDatagramSocket.send(requestPacket);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

/*接收服务器发来的数据*/
private String recieve() {
try {
clientDatagramSocket.receive(recieveDatagramPacket); // 接收数据包的数据,放到clientPacket中
} catch (IOException e) {
e.printStackTrace();
}
String rString = new String(recieveDatagramPacket.getData() 0 recieveDatagramPacket.getLength()); // 将包中数据转换为字符串
return rString;
}
}










 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2016-12-14 08:47  Experiment5\.classpath

     文件        387  2016-12-14 08:47  Experiment5\.project

     文件        598  2016-12-14 08:47  Experiment5\.settings\org.eclipse.jdt.core.prefs

     文件       2688  2016-12-24 20:38  Experiment5\bin\my\booktest\Client.class

     文件       1931  2016-12-24 20:38  Experiment5\bin\my\booktest\Server.class

     文件       2618  2016-12-24 20:38  Experiment5\bin\my\exp5\FlightClient.class

     文件        576  2016-12-24 20:38  Experiment5\bin\my\exp5\FlightServer$1.class

     文件       1248  2016-12-24 20:38  Experiment5\bin\my\exp5\FlightServer$2.class

     文件       3322  2016-12-24 20:38  Experiment5\bin\my\exp5\FlightServer.class

     文件       2262  2016-12-24 20:38  Experiment5\bin\my\exp5\ServiceRunnable.class

     文件    1526602  2016-12-15 18:12  Experiment5\fds_data(lab4,5).txt

     文件       2247  2017-01-09 18:43  Experiment5\src\my\exp5\FlightClient.java

     文件       3361  2017-01-09 18:43  Experiment5\src\my\exp5\FlightServer.java

     文件       1369  2016-12-22 21:45  Experiment5\src\my\exp5\ServiceRunnable.java

     目录          0  2016-12-27 21:41  Experiment5\bin\my\booktest

     目录          0  2016-12-27 21:41  Experiment5\bin\my\exp5

     目录          0  2016-12-27 21:41  Experiment5\src\my\exp5

     目录          0  2016-12-27 21:41  Experiment5\bin\my

     目录          0  2016-12-27 21:41  Experiment5\src\my

     目录          0  2016-12-27 21:41  Experiment5\.settings

     目录          0  2016-12-27 21:41  Experiment5\bin

     目录          0  2016-12-27 21:41  Experiment5\src

     目录          0  2016-12-27 21:41  Experiment5

----------- ---------  ---------- -----  ----

              1549510                    23


评论

共有 条评论

相关资源