<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java世界

    學習筆記

    常用鏈接

    統(tǒng)計

    積分與排名

    天籟村

    新華網

    雅虎

    最新評論

    海運項目:ServerSort類

    package com.sinojava.haiyun;
    import java.io.*;
    import java.net.*;
    import java.util.ArrayList;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    //服務器端類
    public class ServerSort {
    ?? ?private Frame frame;
    ?? ?private TextArea display;
    ?? ?//用于航次計數
    ?? ?private int count = 0;
    ?? ?private ObjectOutputStream output;
    ?? ?private ObjectInputStream input;
    ?? ?private ServerSocket ser;
    ?? ?private Socket soc;
    ?? ?//用于客戶端技術
    ?? ?private int counter = 0;
    ?? ?ArrayList list = new ArrayList();
    ?? ?//創(chuàng)建Exporter對象exe
    ?? ?Exporter exe = new Exporter();
    ?? ?//構建服務器端GUI
    ?? ?public ServerSort() {
    ?? ??? ?frame = new Frame("服務器端處理");
    ?? ??? ?display = new TextArea();
    ?? ??? ?frame.add(display);
    ?? ??? ?frame.setSize(500,500);
    ?? ??? ?frame.setLocation(200, 200);
    ?? ??? ?frame.setVisible(true);
    ?? ??? ?//退出程序
    ?? ??? ?frame.addWindowListener(new WindowAdapter() {
    ?? ??? ??? ?public void windowClosing(WindowEvent e) {
    ?? ??? ??? ??? ?System.exit(0);
    ?? ??? ??? ?}
    ?? ??? ?});
    ?? ?}
    ?? ?//運行服務器,連接客戶端
    ?? ?public void runServer() {?? ?
    ?? ?????? try {
    ?? ????????? // 第一步:創(chuàng)建一個ServerSocket
    ?? ????????? ser = new ServerSocket(5000);
    ?? ????????? while(true) {
    ?? ??????? ??? ? //計數多少個客戶端
    ?? ??????? ??? ? counter++;
    ?? ??????? ??? ? //設置JTextArea不能被更改
    ?? ??????? ??? ? display.setEditable(false);
    ?? ???????????? // 第二步:等待一個連接
    ?? ???????????? waitForConnection();
    ?? ???????????? // 第三步:獲取接受數據
    ?? ???????????? getStreams();
    ?? ???????????? // 第四步:連接處理
    ?? ???????????? processConnection();
    ?? ???????????? // 第五步:關閉連接
    ?? ???????????? closeConnection();
    ?? ????????? }
    ?? ?????? }catch (IOException e) {
    ?? ????????? e.printStackTrace();
    ?? ?????? }
    ?? ??? }
    ?? ?
    ?? ?//向客戶端發(fā)送信息
    ?? ?private void sendData(String message) {
    ?? ?????? try {
    ?? ????????? output.writeObject(message);
    ?? ????????? output.flush();
    ?? ?????? }
    ?? ?????? catch (IOException e) {
    ?? ????????? display.append("\n錯誤寫入對象");
    ?? ?????? }
    ?? ??? }
    ?? ?//第二步:等待一個連接
    ?? ?private void waitForConnection() throws IOException {
    ?? ??? ? display.setText("等待連接\n");
    ?? ????? soc = ser.accept();?? ?
    ?? ????? //InetAddress類采用工廠設計模式,有三個靜態(tài)工廠方法,如getHostName or getLocalHost。
    ?? ????? display.append("Socket "+counter+" 接收來至:"+soc.getInetAddress().getHostName());
    ?? ? }
    ?? ??? // 獲取接受數據
    ?? ? private void getStreams() throws IOException {
    ?? ????? output = new ObjectOutputStream(soc.getOutputStream());
    ?? ????? output.flush();
    ?? ????? input = new ObjectInputStream(soc.getInputStream());
    ?? ????? display.append("\n獲得I/O流\n\n\n");
    ?? ? }
    ?? ??? // 連接處理
    ?? ? private void processConnection() throws IOException {
    ?? ????? String message ="服務器: 連接成功\n\n\n";
    ?? ????? output.writeObject(message);
    ?? ????? output.flush();
    ?? ????? do {
    ?? ????????? try {
    ?? ???????????? message = (String)input.readObject();
    ?? ???????????? //解析字符串
    ?? ???????????? exe.splitText(message);
    ?? ???????????? sendData("成功從服務器端接收處理后的數據:"+"\n\n");
    ?? ???????????? //遍歷集合
    ?? ???????????? Iterator i = exe.list.iterator();
    ?? ??? ??? ??? ?while (i.hasNext()) {
    ?? ??? ??? ??? ??? ?//將遍歷出來的對象Object轉成Exporter類型
    ?? ??? ??? ??? ??? ?exe = (Exporter) i.next();
    ?? ??? ??? ??? ??? ?//變量來累計航行次數
    ?? ??? ??? ??? ??? ?count++;
    //?? ??? ??? ??? ??? ?在集合中放入箱型參數
    ?? ??? ??? ??? ??? ?list.add(exe.getCnttype());
    ?? ??? ??? ??? ??? ?//發(fā)送字符數據給客戶端
    ?? ??? ??? ??? ??? ?sendData("船名:"+exe.getShipname()+"\n");
    ?? ??? ??? ??? ??? ?sendData("航次:"+exe.getVoyage()+"\n");
    ?? ??? ??? ??? ??? ?sendData("提單號:"+exe.getBlno()+"\n");
    ?? ??? ??? ??? ??? ?sendData("目的港:"+exe.getDestination()+"\n");
    ?? ??? ??? ??? ??? ?sendData("集裝箱尺寸:"+exe.getCntsize()+"\n");
    ?? ??? ??? ??? ??? ?sendData("箱型:"+exe.getCnttype()+"\n");
    ?? ??? ??? ??? ??? ?sendData("箱量:"+exe.getCntqnt()+"\n");
    ?? ??? ??? ??? ??? ?sendData("經紀人:"+exe.getCntoperator()+"\n");
    ?? ??? ??? ??? ??? ?sendData("備注:"+exe.getRemark()+"\n");
    ?? ??? ??? ??? ??? ?sendData("本航次的船名: "+exe.getShipname()+"; 航次: "+exe.getVoyage()+"; 業(yè)務量: "+exe.getCntqnt()+"; 箱型: "+exe.getCnttype()+"\n");
    ?? ??? ??? ??? ??? ?sendData("--------------------------------------------------\n");
    ?? ??? ??? ??? ?}
    ?? ??? ??? ??? ?sendData("--------------------------------------------------\n");
    ?? ??? ??? ??? ?sendData("一共有:" + count + "航次"+"\n");
    ?? ??? ??? ??? ?sendData(list.size()+" 個箱型 :"+list+"\n");
    ?? ??? ??? ??? ?display.append("文件處理完成,已發(fā)送至客戶端!"+"\n");
    ?? ???????????? display.setCaretPosition(display.getText().length());
    ?? ??????????? ?
    ?? ????????? }
    ?? ????????? catch(ClassNotFoundException e) {
    ?? ???????????? display.append("\n未知對象類型接收");
    ?? ????????? }
    ?? ?????? } while(true);
    ?? ??? }
    ?? ? //關閉連接
    ?? ? private void closeConnection() throws IOException {
    ?? ????? display.append("\n用戶終端連接");
    ?? ????? output.close();
    ?? ????? input.close();
    ?? ????? soc.close();
    ?? ? }
    ?? ? //main方法
    ?? ? public static void main(String args[]) {
    ?? ??? ? ServerSort ss = new ServerSort();
    ?? ??? ? //運行服務器
    ?? ??? ? ss.runServer();
    ?? ? }

    }

    posted on 2007-11-16 14:04 Rabbit 閱讀(402) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
    主站蜘蛛池模板: 黄网站在线播放视频免费观看| 亚洲一本大道无码av天堂| 亚洲av永久无码精品漫画 | 2022年亚洲午夜一区二区福利| 9久久免费国产精品特黄| 久久国产成人亚洲精品影院| caoporn成人免费公开| 亚洲综合最新无码专区| 永久免费观看黄网站| 久久影视综合亚洲| 野花香高清视频在线观看免费| 亚洲不卡av不卡一区二区| 69视频在线观看免费| 成人性做爰aaa片免费看| 亚洲色大成网站WWW久久九九 | 99久久综合精品免费| 亚洲理论片中文字幕电影| 9久9久女女免费精品视频在线观看| 亚洲 欧洲 自拍 另类 校园| 中文字幕无码免费久久| 久久精品国产亚洲av影院| 免费H网站在线观看的| 亚洲av日韩av永久无码电影| 免费在线观看你懂的| 国产猛男猛女超爽免费视频| 亚洲成年人免费网站| 日韩免费三级电影| 久久www免费人成精品香蕉| 亚洲天堂在线播放| 日本免费一区二区三区最新| 香蕉免费一级视频在线观看| 久久亚洲精品国产精品| 日本人的色道www免费一区| 91视频免费观看| 国产亚洲精品bv在线观看| 精品亚洲视频在线观看| 成人免费黄色网址| eeuss草民免费| 亚洲高清中文字幕免费| 国产成人精品日本亚洲专区61| 亚洲三级高清免费|