java通訊,java通訊錄課程設計報告

本文目錄一覽:

如何實現兩個java程序之間的相互通訊,不想用Socket

不用也可以。

通訊就是對數據進行交換,數據可以保存在硬盤上。

設置硬盤上的文件為數據溝通的橋樑就可以實現不用Socket進行兩個程序間的通訊了(同一主機上)。

更具體一點的實現可以是:

兩個程序間要進行通訊(a、b),設置兩個文件夾(d://a、d://b),程序a將要發送的消息通過文件的方式放在文件夾a中,b程序的消息放b文件夾,每一個消息都是一個單獨的文件,文件名用當前時間命名。

a程序中監控b文件夾中的文件數量,每當文件數量增加便讀取新文件所包涵的信息,當文件夾中的文件數量超過10就清空一次文件,防止無用數據一直佔著存儲空間,b程序和a程序基本一致,只不過監控的文件夾換成了文件夾a。

如果真有這方面的需求,需要用這種方式實現,先做個框架會方便很多。

在java的web程序中怎麼使用串口通訊?

方法如下:

新建eclipse工程,添加comm.jar或者RXTXcomm.jar包。因為javacomm20-win32.zip包里有樣例SimpleRead.java,可以通過這個例子測試串口是否正確。

接收數據正確後,根據傳送接收雙方的協議,採用CRC循環校驗,根據傳輸的一方的校驗函數判定是否是正確傳輸。

把正確結束的數據解析,查看自己指定的通訊規則,然後解析。

插入數據庫,jdbc插入。

數據統計,定時統計每小時,每天,每月,每年的平均值,採用quartz服務來實現。

建立web工程,採用hibernate3,spring3,dwr技術把數據庫數據動態顯示,圖表採用jfreechart,以及AJAX的運用

java優點:

java是純面向對象編程的語言;

平台無關性 (一次編譯,到處運行;Write Once,Run Anywhere);

java提供了許多內置的類庫,通過這些類庫,簡化了開發人員的設計工作,同時縮短了項目開發時間;

提供了對Web應用開發的支持,例如,Applet,Servlet,和JSP可以用來開發Web應用程序,,Socket,RMI可以用來開發分布式應用程序的類庫;

去除了c++中難以理解,容易混淆的特性(如c++中的多繼承,頭文件,指針,結構,單元,運算符重載,虛擬基礎類,使得程序更加嚴謹,整潔。

java Socket通信原理

具體如下:

首先socket 通信是基於TCP/IP 網絡層上的一種傳送方式,我們通常把TCP和UDP稱為傳輸層。其中UDP是一種面向無連接的傳輸層協議。UDP不關心對端是否真正收到了傳送過去的數據。

如果需要檢查對端是否收到分組數據包,或者對端是否連接到網絡,則需要在應用程序中實現。UDP常用在分組數據較少或多播、廣播通信以及視頻通信等多媒體領域。

在這裡我們不進行詳細討論,這裡主要講解的是基於TCP/IP協議下的socket通信。

socket是基於應用服務與TCP/IP通信之間的一個抽象,他將TCP/IP協議裡面複雜的通信邏輯進行分裝。

服務端初始化ServerSocket,然後對指定的端口進行綁定,接着對端口及進行監聽,通過調用accept方法阻塞。

此時,如果客戶端有一個socket連接到服務端,那麼服務端通過監聽和accept方法可以與客戶端進行連接。

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。

Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行複雜的編程。

Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。

Java 中利用管道實現線程間的通訊

在Java 語言中 提供了各種各樣的輸入輸出流(stream) 使我們能夠很方便的對數據進行操作 其中 管道(pipe)流是一種特殊的流 用於在不同線程(threads)間直接傳送數據 一個線程發送數據到輸出管道 另一個線程從輸入管道中讀數據 通過使用管道 實現不同線程間的通訊 無需求助於類似臨時文件之類的東西 本文在簡要介紹管道的基本概念後 將以一個具體的實例pipeapp加以詳細說明 .管道的創建與使用Java提供了兩個特殊的專門的類專門用於處理管道 它們就是pipedinputstream類和pipeoutputstream類 Pipedinputstream代表了數據在管道中的輸出端 也就是線程向管道讀數據的一端 pipeoutputstream代表了數據在管道中的輸入端 也就是線程向管道寫數據的一端 這兩個類一起使用可以提供數據的管道流 為了創建一個管道流 我們必須首先創建一個pipeoutstream對象 然後 創建pipeinputstream對象 實例如下 pipeout= new pipedyoutstream();pipein= new pipedputsteam(pipepout);一旦創建了一個管道後 就可以象操作文件一樣對管道進行數據的讀寫 .演示程序 pipeapp應用程序由三個程序組成 主線程(pipeapp Java)及由主線程啟動的兩個二級線程(ythread Java和zthread Java) 它們使用管道來處理數據 程序從一個內容為一行一行 x 字母的 input txt 文件中讀取數據 使用管道傳輸數據 第一次是利用線程ythread將數據 x 轉換為 y 最後利用線程zthread將 y 轉換為 z 之後 程序在屏幕上顯示修改後的數據 主線程 (pipeapp Java)在main()方法中 程序首先創建一個應用對象 pipeapp pipeapp=new pipeapp();由於程序中流操作都需要使用IOException異常處理 所以設置了一個try塊 在try中 為了從源文件中讀取數據 程序為 input txt 文件創建了一個輸入流Xfileln :fileinputstream xfileln= new fileinputstream( input txt );新的輸入流傳遞給changetoy()方法 讓線程ythread能讀取該文件 inputstream ylnpipe =pipeapp changetoy(xfileln);changetoy()方法創建將輸入數據 x 改變到 y 的線程ythread 並返回該線程的輸入管道 inputstream zlnpipe = pipeapp changetoz(ylnpipe);changetoz()方法啟動將數據從 y 改變到 z 的線程zehread 主程序將使用從changetoz()返回的輸入管道 得到以修改的數據 然後 程序將管道輸入流定位到datainputstream對象 使程序能夠使用readline()方法讀取數據 datainputstream inputstream = new datainputstream(zlnpiepe);創建了輸入流以後 程序就可以以行一行的讀取數據病顯示在屏幕上 String str= inputstream readline();While(str!=null){system out println(str); str=inputstream readline();} 顯示完成之後 程序關閉輸入流 inputstream close();changetoy()方法 changetoy()方法首先通過傳遞一個參數inputstream給datainputstream對象來定位資源的輸入流 使程序能使用readline()方法從流中讀取數據 datainputstream xfileln =new datainutstream(inputstream) 然後 changetoy()創建輸出管道和輸入管道 pipeoutstream pipeout = new pipeoutputstream();pipeinputstream pipeln = new pipedinputsteam(pipeout); 為了能夠使用println()方法輸出修改的後的文本行到管道 程序將輸出管道定位到printstream對象 printstream printstream = new printstream(pipeout);現在 程序可以創建將數據從x改變到y的線程 該線程是ythread類的一個對象 他傳遞兩個參數 輸入文件(xfileln)和輸出管道(調用printstream) ythread ythread =new thread(xfileln printstream);之後 程序啟動線程 changetoz()方法changetoz()方法與changetoy()方法很相似 他從changetoy()返回的輸入流開始 datainputstream yfileln= new datainputstream(inputstream);程序創建一個新的管道 pipedoutstream pipeout = new pipedoutputstream();pipedinputstream pipeln = new pipedinputsream(pipeout ); 該線程通過這個新的管道發出修改後的數據(輸入流pipeln )給主程序 源程序如下 ////pipeapp Java pipeapp的主應用程序//import Java io *class pipeapp{public static void main(string[] args){pipeapp pipeapp=new pipeapp();try{fileinputstream xfile =new fileinputstream( input txt );inputstream ylnpipe = pipeapp changetoy(xfileln);inputstream zlnpipe=pipeapp changetoz(ylnpipe);system out println();system out println( here are the results );system out pringln();datainputstream inputstream = nes datainputstream(zlnpipe);string str = inputstream readline();while (str!=null){system out println(str);str=inputstream readline();}inputstream close();}catch(exception e){system out println(e tostring());}}public inputstream changetoy(inputstream inputstream){try{datainputstream pipeout = new datainputsteam(inputstream);pipedoutstream pipeout = new pipedoutputstream();pipedlnsteam pipeln = new pipedlnputstream(pipeout);printstream printstream = new printstream(pipeout);ythread ythread = new ythread(xfileln printstream);ythread start();return pipeln;}catch(exeption e){system out println(x tostring());}return null;}public inputstream changetoz(inputstream inputsteam){try{datainputstream yfileln = new datainputstream(inputstream);pipeoutputstream pipeln = new pipedinputstream(pipeout );printrstream printstream = new printsteam(pipeout );zthread zthread = new zthread(yfileln printstream );zthread start();return pipeln ;}catch(exception e){system out println(e tostring());}return null;}} Ythread類和Zthread類由於ythread類與zthread類基本一樣 在此僅以ythread為例加以說明 Ythread的構造器接收兩個參數 輸入的文件和第一個管道的輸出端 構造器存儲這兩個參數作為類的數據成員  Ythread(datainputstream xfileln pringstream printstream){this xfileln = xfileln;this printstream = printstream;} 線程通過run()方法來處理數據 首先讀取一行數據 確保xstring不為空的情況下循環執行 string xstring = xfileln readline();每讀一行數據 完成一次轉換string ystring = xstring replace( x y );然後將修改後的數據輸出到管道的輸出端 prinstream prinrln(ystring);為了確保所有緩衝區的數據完全進入管道的輸出端 pringstram flush();循環完成後 線程關閉管道輸出流  pringstram close();ythread類的源程序如下 //ythread Java//import Java io *;class ythread exteads thread{datainputstream xfileln;pringstream printstream;ythread(datainputstream xfileln pringstream printstream){this xfileln = xfileln;this printstream = printstream;}public void run(){try{string xstring = xfileln readline();while(xstring!=null){string ystring= xstring replace( x y );printstream pringln(ystring);printstream flush();xstring= xfileln readline();}printstream close();}catch{ioexception e}{system out println(e tostring());}}} pipeapp應用程序使用microsoft visual j++ 編譯 lishixinzhi/Article/program/Java/gj/201311/27508

java開發的程序是怎樣實現聯網的

java中聯網的手段有很多中,比如scoket通訊有socket類庫,http通訊可以用httpclient,郵件協議可以用javamail,其他的等等都可以在網上找到對應的第三方類庫。千鋒教育現擁有百人教研團隊,300人教學團隊,講師均來自一線大廠兼具項目實戰與教學經驗,全程面授教學。

java有非常廣泛的應用市場,它的生態系統幾乎涵蓋了目前市面上所有的軟硬件,java幾乎是萬能的,你能想到的,java基本都能實現(雖然吹的有點大,但不可否認)。java是有一個龐大的生態系統,它的覆蓋範圍非常廣,而且已經連續十幾年位居開發語言的榜首,所以java是相對於其他語言來說,非常穩定的。從當前招聘網站來看java的需求量是非常大的,但是這個需求是有前提條件的,那麼必須是開發3年以上的開發工程師。

想要了解更多關於java開發的相關信息,推薦諮詢千鋒教育。千鋒企業合作部於2013年成立,主要針對企業用人需求和學員職業規划進行服務。經過8年發展,企業合作部已經成為千鋒連接企業和學員的重要紐帶。服務面對企業建立全方位、立體化、遍布全國的企業合作網絡,覆蓋全國一線二線城市大中小型公司,成功幫助20000餘名人才實現就業,合作企業達20000餘家,每年簽訂1000餘份人才培養訂單,讓廣大學員沒有後顧之憂。

JAVA通訊錄 求一個JAVA編寫的通訊錄,基本的就可以。

具體方法如下:

1、定義封裝一條記錄的實體類

2、根據實際系統容量,定義一個數組

3、完成系統中顯示全部記錄的邏輯

4、完成系統中添加一條記錄的邏輯

5、完成系統中刪除一條記錄的邏輯

6、完成系統中修改一條記錄的邏輯

7、全部代碼:

import java.util.Scanner;

class Contact {

String cellPhone;

String name;

}

public class Main {

private static void menu () {

System.out.println(“************** 菜單 ******”

+ “************”);

System.out.println(” 1.顯示全部通訊錄”);

System.out.println(” 2.增加一條記錄”);

System.out.println(” 3.刪除一條記錄”);

System.out.println(” 4.修改一條記錄”);

System.out.println(” 0.退出”);

}

public static void main(String[] args) {

Scanner scn = new Scanner(System.in);

Contact[] contacts = new Contact[200];

int size = 0;

String cmd = “”;

do {

menu();

System.out.print(“請輸入你得選擇:(0-4)”);

cmd = scn.nextLine();

if (cmd.equals(“1”)) {

if (size == 0)

System.out.println(“系統當前無記錄!”);

else

for (int i = 0; i size; i++) {

System.out.println(contacts[i].name + “:”

+ contacts[i].cellPhone);

}

} else if (cmd.equals(“2”)) {

System.out.print(“請輸入手機號:”);

String cellphone = scn.nextLine();

System.out.print(“請輸入姓名:”);

String name = scn.nextLine();

Contact contact = new Contact();

contact.cellPhone = cellphone;

contact.name = name;

if (size contacts.length) {

contacts[size++] = contact;

System.out.println(“添加成功!”);

} else {

System.out.println(“你最多只能添加” +

contacts.length + “條記錄”);

}

} else if (cmd.equals(“3”)) {

System.out.print(“請輸入要刪除的手機號:”);

String cellphone = scn.nextLine();

int index = -1;

for (int i = 0; i size i contacts.length;

i++) {

if (contacts[i].cellPhone.equals(cellphone)) {

index = i;

break;

}

}

if (index == -1) {

System.out.println(“該記錄不存在!”);

} else {

for (int i = index; i size; i++) {

contacts[index] = contacts[index + 1];

}

contacts[size – 1] = null;

size–;

System.out.println(“刪除成功!”);

}

} else if (cmd.equals(“4”)) {

System.out.print(“請輸入要修改的手機號:”);

String cellphone = scn.nextLine();

int index = -1;

for (int i = 0; i size i contacts.length;

i++) {

if (contacts[i].cellPhone.equals(cellphone)) {

index = i;

break;

}

}

if (index == -1) {

System.out.println(“該記錄不存在!”);

} else {

System.out.print(“請輸入姓名:”);

String name = scn.nextLine();

contacts[index].name = name;

}

}

} while (!cmd.equals(“0”));

System.out.println(“退出成功!”);

scn.close();

System.exit(0);

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/160935.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-21 01:17
下一篇 2024-11-21 01:17

相關推薦

  • Python數據處理課程設計

    本文將從多個方面對Python數據處理課程設計進行詳細闡述,包括數據讀取、數據清洗、數據分析和數據可視化四個方面。通過本文的學習,讀者將能夠了解使用Python進行數據處理的基本知…

    編程 2025-04-29
  • Python爬蟲文檔報告

    本文將從多個方面介紹Python爬蟲文檔的相關內容,包括:爬蟲基礎知識、爬蟲框架及常用庫、爬蟲實戰等。 一、爬蟲基礎知識 1、爬蟲的定義: 爬蟲是一種自動化程序,通過模擬人的行為在…

    編程 2025-04-28
  • Python貪吃蛇遊戲設計報告

    本文將從遊戲設計的目標、實現思路、技術要點、代碼實現等多個方面對Python貪吃蛇遊戲進行詳細闡述。 一、遊戲設計的目標 貪吃蛇是一款經典的遊戲,我們的遊戲設計不僅要實現基本的玩法…

    編程 2025-04-28
  • Python編寫通訊錄程序

    本文將從多個方面詳細闡述Python編寫通訊錄程序的方法和步驟。 一、程序介紹 通訊錄程序是一個非常實用的小工具,它可以幫助我們方便地記錄和管理聯繫人的信息。在Python中,我們…

    編程 2025-04-27
  • Python課程設計題目用法介紹

    Python是一門高級、面向對象的編程語言,廣泛應用於Web應用程序開發、人工智能、數據科學、自動化測試等領域。Python基礎課程學習是每個Python學習者必須經歷的階段,而P…

    編程 2025-04-27
  • Python管理系統設計報告

    本文將從系統設計、數據存儲、界面設計、安全性等多個方面,詳細闡述Python管理系統的設計,為讀者提供完整且系統的解決方案。 一、系統設計 Python管理系統的設計需要考慮到系統…

    編程 2025-04-27
  • Spark課程設計:病人處理數據

    本文將從以下幾個方面詳細闡述Spark課程設計,主題為病人處理數據。 一、數據讀取和處理 val path = “/path/to/data/file” val sc = new …

    編程 2025-04-27
  • 單片機課程設計心得體會

    單片機課程設計體驗,不僅能夠讓我們初步掌握單片機基本概念,更能夠讓我們在實踐中加深對學習內容的理解和實際操作能力的提升。在此過程中,我總結了以下幾方面的經驗和體會。 一、選擇合適的…

    編程 2025-04-27
  • Python代碼報告怎麼寫?

    Python作為一種高級編程語言,在很多領域得到了廣泛的應用。而代碼報告,作為一種記錄代碼過程,分享代碼成果的形式,也成為了Python開發和研究中越來越重要的一環。 一、代碼規範…

    編程 2025-04-25
  • Python實驗報告詳解

    一、實驗簡介 Python是一種高級編程語言,設計初衷是為了簡單易讀易寫。本實驗選擇Python作為研究對象,旨在探究其在不同應用場景下的使用方法和效果。 二、Python基礎語法…

    編程 2025-04-24

發表回復

登錄後才能評論