资源简介
使用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
- 上一篇:android通用蓝牙调试助手
- 下一篇:计步器apk _StepCounting
评论
共有 条评论