當前位置:首頁 » 編程語言 » java網路程序

java網路程序

發布時間: 2025-07-17 08:33:44

㈠ 簡述java程序的開發過程

Java程序開發步驟是什麼?

具體操作步驟如下:

第一步:安裝JDK。

要下載Oracle公司的JDK可以網路「JDK」進入Oracle公司的JDK下載頁面,選擇自己電腦系統的對應版本即可。

第二步:配置Windows上JDK的變數環境。

JAVA_HOME

先設置這個系統變數名稱,變數值為JDK在電腦上的安裝路徑:C:ProgramFilesJavajdk1.8.0_20。創建好後則可以利用%JAVA_HOME%作為JDK安裝目錄的統一引用路徑。

Path

PATH屬性已存在,可直接編輯,在原來變數後追加:;%JAVA_HOME%in;%JAVA_HOME%jrein。

CLASSPATH

設置系統變數名為:CLASSPATH?變數值為:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar。

注意變數值字元串前面有一個"."表示當前目錄,設置CLASSPATH?的目的,在於告訴Java執行環境,在哪些目錄下可以找到所要執行的Java程序所需要的類或者包。

第三步:下載安裝Eclipse(已上傳附件,電腦打開可下載)?。

Eclipse為Java應用程序及Android開發的IDE(集成開發環境)。Eclipse不需要安裝,下載後把解壓包解壓後,剪切eclipse文件夾到你想安裝的地方,打開時設置工作目錄即可。

第四步:下載安裝AndroidSDK。

配置了JDK變數環境,安裝好了Eclipse,這個時候如果只是開發普通的JAVA應用程序,那麼Java的開發環境已經准備好了。要通過Eclipse來開發Android應用程序,那麼需要下載AndroidSDK(SoftwareDevelopmentKit)和在Eclipse安裝ADT插件,這個插件能讓Eclipse和AndroidSDK關聯起來。

第五步:為Eclipse安裝ADT插件。

前面已經配置好了java的開發環境,安裝了開發Android的IDE,下載安裝了AndroidSDK,但是Eclipse還沒有和AndroidSDK進行關聯,也就是它們現在是互相獨立的,就好比槍和子彈分開了。為了使得Android應用的創建,運行和調試更加方便快捷,Android的開發團隊專門針對EclipseIDE定製了一個插件:AndroidDevelopmentTools(ADT)。

簡述JAVA程序的編輯編譯和運行過程

第一步(編譯):創建完源文件之後,程序會先被編譯為.class文件。Java編譯一個類時,如果這個類所依賴的類還沒有被編譯,編譯器就會先編譯這個被依賴的類,然後引用,否則直接引用,這個有點象make。

如果java編譯器在指定目錄下找不到該類所其依賴的類的.class文件或者.java源文件的話,編譯器話報「cantfindsymbol」的錯誤。

第二步(運行):java類運行的過程大概可分為兩個過程:1、類的載入2、類的執行。需要說明的是:JVM主要在程序第一次主動使用類的時候,才會去載入該類。也就是說,JVM並不是在一開始就把一個程序就所有的類都載入到內存中,而是到不得不用的時候才把它載入進來,而且只載入一次。

特別說明:java類中所有public和protected的實例方法都採用動態綁定機制,所有私有方法、靜態方法、構造器及初始化方法clinit都是採用靜態綁定機制。而使用動態綁定機制的時候會用到方法表,靜態綁定時並不會用到。

(1)java網路程序擴展閱讀:

Java整個編譯以及運行的過程相當繁瑣,本文通過一個簡單的程序來簡單的說明整個流程。

Java代碼編譯:是由Java源碼編譯器來完成;

Java位元組碼的執行:是由JVM執行引擎來完成

Java程序從源文件創建到程序運行要經過兩大步驟:

1、源文件由編譯器編譯成位元組碼(ByteCode)

2、位元組碼由java虛擬機解釋運行。因為java程序既要編譯同時也要經過JVM的解釋運行,所以說Java被稱為半解釋語言("semi-interpreted"language)。

簡述Java應用程序的開發流程

分為網頁和桌面的應用開發

網頁或者桌面開發流程

項目啟動1)、項目組成立(公司成員、客戶成員)

2)、制定項目預期目標

3)、制定項目計劃周期

4)、建立好項目組成員溝通機制

2、需求調研

1)、創建調研計劃、協調調研時間

2)、收集客戶資料,獲取客戶需求所有的資料都需要保留一份,資料中存疑的需要及時詢問

3)、編寫需求文檔重點描述出客戶的業務流程和性能要求。採用Word、Excel、Rose等形式。

4)、需求變更記錄

5)、確定開發環境和運行環境

6)、擴展性要求

7)、與舊系統的接駁要求。

8)、估算出項目工作量本階段需要一套需求管理系統來進行需求的管理。本階段的需求文檔也是用戶測試的依據。

3、系統設計/詳細設計一個系統可以分為基礎平台和應用模塊兩部分。

1)、選擇基礎平台,無論是採用第三方平台還是自行開發平台,都需要深入了解,查看是否符合要求。

2)、應用模塊設計(針對業務流程)

3)、中間件的採用或自行開發,需要深入了解。

4)、用戶界面的設計如果用戶界面設計完畢並確認,即可初步寫出用戶使用手冊、管理員使用手冊。

5)、變更記錄本階段的系統設計是集成測試的依據。

4、程序開發創建開發任務計劃表、開發計劃日程表

1)、優先編寫測試用例

2)、按照編碼規范編寫代碼

3)、按照文檔注釋規范注釋以上形成開發文檔。本階段需要一套版本管理系統。本階段的測試用例也是單元測試的依據。如果能做到,最好每日構建。

5、測試本階段需要一套Bug管理系統,形成需求、設計、開發、測試互動。

1)、編寫測試計劃和測試方案

2)、功能測試單元測試、集成測試

3)、性能測試集成測試、壓力測試如果能做到,最好能進行自動化測試。如果能做到,做分析統計工作。最後形成測試報告。

6、試用、培訓、維護本階段需要解決:

1)、解決異地修改和公司修改的同步問題。

2)、用戶測試中的Bug修改問題,按照級別分為a)、程序Bugb)、設計變更c)、需求變更盡量按照a

b

c的順序來進行修改,盡量避免b、c級的修改。最後形成安裝手冊、維護記錄。

開發JAVA應用程序有哪些步驟?

需要以下步驟:

定義問題:主要是指「想開發什麼樣的程序」、「這個程序用來解決什麼問題」。滿足目標客戶的要求是最重要的。

2.是否具有可行性:要對這個程序是否具有實用性、利益性、以及對技術和法律方面的要求,都進行考慮。

3.需求分析。弄清用戶對軟體系統的全部需求,編寫需求規格說明書和初步的用戶手冊,提交評審。

4.開發階段:設計、實現、測試,是開發時最為重要的三個步驟。這三個步驟需要把程序員自己的理解及想法,和客戶的需求都要得到體現。

5.對程序的維護:維護相當於售後服務,這個非常重要。因為程序在運營時,可能遇到各種各樣的突發事件,面對這些突發情況,必須要進行緊急的處理。維護包括四個方面"改正性維護、適應性維護、完善性維護、預防性維護"。

Java,是由SunMicrosystems公司於1995年5月推出的Java程序設計語言和Java平台的總稱。用Java實現的HotJava瀏覽器(支持Javaapplet)顯示了Java的魅力:跨平台、動態的Web、Internet計算。從此,Java被廣泛接受並推動了Web的迅速發展,常用的瀏覽器現均支持Javaapplet。

ava分為三個體系JavaSE(Java2PlatformStandardEdition,java平台標准版),JavaEE(Java2Platform,EnterpriseEdition,java平台企業版),JavaME(Java2PlatformMicroEdition,java平台微型版)。

㈡ 我要一份用java網路編程寫的點對點的兩人聊天程序(TCP和UDP)

Server端:
import java.io.*;
import java.net.*;
import java.applet.Applet;
public class TalkServer{
public static void main(String args[]) {
try{
ServerSocket server=null;
try{
server=new ServerSocket(4700);
}catch(Exception e) {
System.out.println("can not listen to:"+e);
}
Socket socket=null;
try{
socket=server.accept();
}catch(Exception e) {
System.out.println("Error."+e);
}
String line;
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Client:"+is.readLine());
line=sin.readLine();
while(!line.equals("bye")){
os.println(line);
os.flush();
System.out.println("Server:"+line);
System.out.println("Client:"+is.readLine());
line=sin.readLine();
}
os.close();
is.close();
socket.close();
server.close();
}catch(Exception e){
System.out.println("Error:"+e);
}
}
}

Client端:
import java.io.*;
import java.net.*;
public class TalkClient {
public static void main(String args[]) {
try{
Socket socket=new Socket("127.0.0.1",4700);
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String readline;
readline=sin.readLine(); //從系統標准輸入讀入一字元串
while(!readline.equals("bye")){
os.println(readline);
os.flush();
System.out.println("Client:"+readline);
System.out.println("Server:"+is.readLine());
readline=sin.readLine(); //從系統標准輸入讀入一字元串
}
os.close(); //關閉Socket輸出流
is.close(); //關閉Socket輸入流
socket.close(); //關閉Socket
}catch(Exception e) {
System.out.println("Error"+e); //出錯,則列印出錯信息
}
}
}

㈢ 怎麼用java程序連接NTP伺服器

Java軟體包內在支持的網路協議為TCP/IP,也是當今最流行的廣域網/區域網協議。Java有關網路的類及介面定義在java.net包中。客戶端軟體通常使用 java.net包中的核心類Socket與伺服器的某個埠建立連接,而伺服器程序不同於客戶機,它需要初始化一個埠進行監聽,遇到連接呼叫,才與相應的客戶機建立連接。Java.net包的ServerSocket類包含了編寫伺服器系統所需的一切。下面給出ServerSocket類的部分定義。

public class ServerSocket {

public ServerSocket(int port)

throws IOException ;

public Socket accept() throws IOException ;

public InetAddress getInetAddress() ;

public int getLocalPort() ;

public void close() throws IOException ;

public synchronized void setSoTimeout

(int timeout) throws SocketException ;

public synchronized int

getSoTimeout() throws IOException ;

}

ServerSocket 構造器是伺服器程序運行的基礎,它將參數port指定的埠初始化作為該伺服器的埠,監聽客戶機連接請求。Port的范圍是0到65536,但0到 1023是標准Internet協議保留埠,而且在Unix主機上,這些埠只有root用戶可以使用。一般自定義的埠號在8000到16000之間。僅初始化了ServerSocket還是遠遠不夠的,它沒有同客戶機交互的套接字(Socket),因此需要調用該類的accept方法接受客戶呼叫。Accept()方法直到有連接請求才返回通信套接字(Socket)的實例。通過這個實例的輸入、輸出流,伺服器可以接收用戶指令,並將相應結果回應客戶機。ServerSocket類的getInetAddress和getLocalPort方法可得到該伺服器的IP地址和埠。 setSoTimeout和getSoTimeout方法分別是設置和得到伺服器超時設置,如果伺服器在timout設定時間內還未得到accept方法返回的套接字實例,則拋出IOException的異常。

Java的多線程可謂是Java編程的精華之一,運用得當可以極大地改善程序的響應時間,提高程序的並行性。在伺服器程序中,由於往往要接收不同客戶機的同時請求或命令,因此可以對每個客戶機的請求生成一個命令處理線程,同時對各用戶的指令作出反應。在一些較復雜的系統中,我們還可以為每個資料庫查詢指令生成單獨的線程,並行對資料庫進行操作。實踐證明,採用多線程設計可以很好的改善系統的響應,並保證用戶指令執行的獨立性。由於Java本身是"線程安全"的,因此有一條編程原則是能夠獨立在一個線程中完成的操作就應該開辟一個新的線程。

Java中實現線程的方式有兩種,一是生成Thread類的子類,並定義該子類自己的run方法,線程的操作在方法run中實現。但我們定義的類一般是其他類的子類,而Java又不允許多重繼承,因此第二種實現線程的方法是實現Runnable介面。通過覆蓋Runnable介面中的run方法實現該線程的功能。本文例子採用第一種方法實現線程。

二、多線程伺服器程序舉例

以下是我們在項目中採用的多線程伺服器程序的架構,可以在此基礎上對命令進行擴充。本例未涉及資料庫。如果在線程運行中需要根據用戶指令對資料庫進行更新操作,則應注意線程間的同步問題,使同一更新方法一次只能由一個線程調用。這里我們有兩個類,receiveServer包含啟動代碼(main()),並初始化ServerSocket的實例,在accept方法返回用戶請求後,將返回的套接字(Socket)交給生成的線程類serverThread 的實例,直到該用戶結束連接。

//類receiveServer

import java.io.*;

import java.util.*;

import java.net.*;

public class receiveServer{

final int RECEIVE_PORT=9090;

//該伺服器的埠號

//receiveServer的構造器

public receiveServer() {

ServerSocket rServer=null;

//ServerSocket的實例

Socket request=null; //用戶請求的套接字

Thread receiveThread=null;

try{

rServer=new ServerSocket(RECEIVE_PORT);

//初始化ServerSocket

System.out.println("Welcome to the server!");

System.out.println(new Date());

System.out.println("The server is ready!");

System.out.println("Port: "+RECEIVE_PORT);

while(true){ //等待用戶請求

request=rServer.accept();

//接收客戶機連接請求

receiveThread=new serverThread(request);

//生成serverThread的實例

receiveThread.start();

//啟動serverThread線程

}

}catch(IOException e){

System.out.println(e.getMessage());}

}

public static void main(String args[]){

new receiveServer();

} //end of main

} //end of class

//類serverThread

import java.io.*;

import java.net.*;

class serverThread extends Thread {

Socket clientRequest;

//用戶連接的通信套接字

BufferedReader input; //輸入流

PrintWriter output; //輸出流

public serverThread(Socket s)

{ //serverThread的構造器

this.clientRequest=s;

//接收receiveServer傳來的套接字

InputStreamReader reader;

OutputStreamWriter writer;

try{ //初始化輸入、輸出流

reader=new InputStreamReader

(clientRequest.getInputStream());

writer=new OutputStreamWriter

(clientRequest.getOutputStream());

input=new BufferedReader(reader);

output=new PrintWriter(writer,true);

}catch(IOException e){

System.out.println(e.getMessage());}

output.println("Welcome to the server!");

//客戶機連接歡迎詞

output.println("Now is:

"+new java.util.Date()+" "+

"Port:"+clientRequest.getLocalPort());

output.println("What can I do for you?");

}

public void run(){ //線程的執行方法

String command=null; //用戶指令

String str=null;

boolean done=false;

while(!done){

try{

str=input.readLine(); //接收客戶機指令

}catch(IOException e){

System.out.println(e.getMessage());}

command=str.trim().toUpperCase();

if(str==null || command.equals("QUIT"))

//命令quit結束本次連接

done=true;

else if(command.equals("HELP")){

//命令help查詢本伺服器可接受的命令

output.println("query");

output.println("quit");

output.println("help");

}

else if(command.startsWith("QUERY"))

{ //命令query

output.println("OK to query something!");

}

//else if …….. //在此可加入伺服器的其他指令

else if(!command.startsWith("HELP") &&

!command.startsWith("QUIT") &&

!command.startsWith("QUERY")){

output.println("Command not Found!

Please refer to the HELP!");

}

}//end of while

try{

clientRequest.close(); //關閉套接字

}catch(IOException e){

System.out.println(e.getMessage());

}

command=null;

}//end of run

啟動該伺服器程序後,可用telnet machine port命令連接,其中machine為本機名或地址,port為程序中指定的埠。也可以編寫特定的客戶機軟體通過TCP的Socket套接字建立連接

㈣ java程序中代理伺服器的設置問題

在內網滲透工作中,搭建反向socks5代理是常用手段之一,紅隊人員需將各種滲透工具連接至代理。然而,對於使用Java編寫的工具,往往不具備socks5代理功能,導致使用proxifier掛載Java程序時出現各種問題。本文將介紹如何通過命令行解決這一難題,並糾正網上關於Java中socks5代理設置方法的錯誤。

啟動socks5代理的命令格式為:

java -DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1080 -jar webscan.jar

其中,`socksProxyHost`為socks5代理的IP地址,`socksProxyPort`為代理的埠號。若需要設置認證,網上文章提供的方法(如`java.net.socks.username`和`java.net.socks.password`)並不適用於命令行環境。實際測試中,此方法無效。

對於HTTP代理的設置,命令行格式如下:

java -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8080 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8080 -Dhttp.nonProxyHosts="*.example.com|localhost" -jar webscan.jar

需要注意,若需設置HTTP代理,務必指定`http.proxyHost`和`http.proxyPort`;若需設置HTTPS代理,則指定`https.proxyHost`和`https.proxyPort`。同時,`http.nonProxyHosts`選項用於指定不走代理的URL。

在Java代碼中直接添加`System.setProperty`設置代理更為簡便。以下為設置HTTP/HTTPS代理的示例代碼:

設置代理的代碼示例如下:

設置Socks5代理的代碼示例如下:

代理認證的代碼編寫如下:

總結而言,針對Java程序的代理設置,命令行方式提供了一種直接且有效的方法。官方手冊是查找Java網路設置方法的重要資源。公眾號致力於分享網路安全技術,包括APT分析、紅隊攻防等知識,每周更新原創內容,歡迎關注。

熱點內容
python每隔 發布:2025-07-17 15:03:08 瀏覽:275
ftp命令passive 發布:2025-07-17 15:02:51 瀏覽:675
迅雷下載的緩存設置 發布:2025-07-17 14:59:54 瀏覽:958
網盤油猴腳本 發布:2025-07-17 14:55:32 瀏覽:723
解壓游戲解壓館可用 發布:2025-07-17 14:48:38 瀏覽:753
手機mq文件夾是什麼 發布:2025-07-17 14:47:42 瀏覽:182
python圖片像素 發布:2025-07-17 14:38:06 瀏覽:781
安卓7bin文件怎麼打開 發布:2025-07-17 14:36:39 瀏覽:439
手機密碼忘記了如何快速開鎖 發布:2025-07-17 14:35:51 瀏覽:71
打開個人存儲 發布:2025-07-17 14:31:30 瀏覽:511