資源簡介
該系統由A、B、C三部分組成,
其中A為公交車查詢客戶端程序;
B為公交查詢服務程序,負責響應來自A的查詢并接收由公交車模擬程序發送過來的當前到站信息;
C為公交車模擬程序,能夠模擬多輛公交車發送當前到站信息。
A、B之間采用TCP協議,B、C之間采用UDP協議
先運行server.java,之后運行server1.java,最后運行Client.java

代碼片段和文件信息
package?A;
import?java.io.DataInputStream;
import?java.io.DataOutputStream;
import?java.io.IOException;
import?java.net.Socket;
import?java.util.Arrays;
import?javafx.application.Application;
import?javafx.event.ActionEvent;
import?javafx.scene.Scene;
import?javafx.scene.control.Alert;
import?javafx.scene.control.Button;
import?javafx.scene.control.Label;
import?javafx.scene.control.TextField;
import?javafx.scene.control.Alert.AlertType;
import?javafx.scene.layout.BorderPane;
import?javafx.scene.layout.HBox;
import?javafx.scene.layout.VBox;
import?javafx.scene.image.Image;
import?javafx.scene.image.ImageView;
import?javafx.stage.Stage;
public?class?Client?extends?Application{
BorderPane?root;
Socket?socket;
DataInputStream?dis;
DataOutputStream?dos;
TextField?text;
Button?btn;
@Override
public?void?start(Stage?stage)?throws?Exception?{
socketInit();
root?=?new?BorderPane();
text?=?new?TextField();
text.setPrefColumnCount(28);
btn?=?new?Button(“查詢“);
HBox?hbox1?=?new?HBox();
hbox1.getChildren().add(text);
hbox1.getChildren().add(btn);
root.setTop(hbox1);
Scene?scene?=?new?Scene(root?396?300);
stage.settitle(“公交車查詢“);
stage.setScene(scene);
stage.show();
btn.setOnAction((ActionEvent?e)?->{
String?bus?=?text.getText().toString().trim();
String?msg1?=?getBusInfo(bus);
if(msg1.equals(“error“)){
Alert?alert?=?new?Alert(AlertType.INFORMATION);
????????????alert.titleProperty().set(“提示“);
????????????alert.headerTextProperty().set(“沒有這條公交線路!“);
????????????alert.showAndWait();
}else{
String?msg2?=?getInfo();
String[]?stations?=?msg1.split(“\r\n“);
String[]?busInfo1?=?msg2.split(“/“);
int[]?busInfo?=?new?int[4];
for(int?i=0;i busInfo[i]?=?Integer.parseInt(busInfo1[i]);
}
Arrays.sort(busInfo);
HBox?hbox?=?new?HBox();
Label?la?=?new?Label();
la.setPrefSize(50?35);
hbox.getChildren().add(la);
int?temp?=?0;
for(int?i=1;i<=stations.length;i++){
VBox?vbox?=?new?VBox();
Label?l?=?new?Label();
if(temp temp++;
Image?image?=?new?Image(“bus.png“);
l.setGraphic(new?ImageView(image));
}
Label?ll?=?new?Label();
Label?lll?=?new?Label();
Label?l1?=?new?Label(““+i);
Label?l2?=?new?Label(“----“);
Label?l3?=?new?Label(stations[i-1]);
vbox.getChildren().add(ll);
vbox.getChildren().add(l);
vbox.getChildren().add(lll);
vbox.getChildren().add(l1);
vbox.getChildren().add(l2);
vbox.getChildren().add(l3);
hbox.getChildren().add(vbox);
}
root.setCenter(hbox);
}
});
}
public?static?void?main(String[]?args)?{
launch(args);
}
private?void?socketInit(){
try?{
socket?=?new?Socket(“localhost“?9999);
dis?=?new?DataInputStream(socket.getInputStream());
dos?=?new?DataOutputStream(socket.getOutputS
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????416??2019-04-09?18:48??新建文件夾\bus.png
?????文件????????3421??2019-04-09?20:14??新建文件夾\Client.java
?????文件????????1137??2019-04-09?19:32??新建文件夾\Server.java
?????文件????????2787??2019-04-09?20:30??新建文件夾\Server1.java
- 上一篇:jsonschema案例
- 下一篇:醫藥銷售管理系統
評論
共有 條評論