新聞中心
李剛Struts2 250高分懸賞。。 求 瘋狂Java_瘋狂軟件_李剛老師_Struts2 這套視頻源代碼 就是李剛老師的
那些是老師隨堂講的,估計(jì)只有跟堂的學(xué)生用,老師自己也許都沒有~~~~~~~~~~~~`
成都創(chuàng)新互聯(lián)公司專注于臨潁網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供臨潁營銷型網(wǎng)站建設(shè),臨潁網(wǎng)站制作、臨潁網(wǎng)頁設(shè)計(jì)、臨潁網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開發(fā)服務(wù),打造臨潁網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供臨潁網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
瘋狂Java講義的源碼如何導(dǎo)入eclipse運(yùn)行?
Java項(xiàng)目的源代碼通過一下四部完成導(dǎo)入到eclipse
1、單擊eclipse的file菜單 ,選擇 import project from file system
2、在彈出的窗口單擊 diretory 按鈕? 選擇?Java源代碼文件系統(tǒng)所在的目錄
3、單擊“選擇文件夾 ”完成將java源代碼導(dǎo)入到eclispe系統(tǒng)
你明白了嗎?
瘋狂Java講義:使用Socket進(jìn)行通信[2]
程序清單 codes/ / /Client java
public class Client
{
public static void main(String[] args)
throws IOException
{
Socket socket = new Socket( )
//將Socket對(duì)應(yīng)的輸入流包裝成BufferedReader
BufferedReader br = new BufferedReader(
new InputStreamReader(socket getInputStream()))
//進(jìn)行普通IO操作
String line = br readLine()
System out println( 來自服務(wù)器的數(shù)據(jù) + line)
//關(guān)閉輸入流 socket
br close()
socket close()
}
}
上面程序中粗體字代碼是使用ServerSocket和Socket建立網(wǎng)絡(luò)連接的代碼 斜體字代碼是通過Socket獲取輸入流 輸出流進(jìn)行通信的代碼 通過程序不難看出 一旦使用ServerSocket Socket建立網(wǎng)絡(luò)連接之后 程序通過網(wǎng)絡(luò)通信與普通IO并沒有太大的區(qū)別
先運(yùn)行上面程序中的Server類 將看到服務(wù)器一直處于等待狀態(tài) 因?yàn)榉?wù)器使用了死循環(huán)來接受來自客戶端的請(qǐng)求 再運(yùn)行Client類 將可看到程序輸出 來自服務(wù)器的數(shù)據(jù) 您好 您收到了服務(wù)器的新年祝福! 這表明客戶端和服務(wù)器端通信成功
上面程序?yàn)榱送怀鐾ㄟ^ServerSocket和Socket建立連接 并通過底層IO流進(jìn)行通信的主題 程序沒有進(jìn)行異常處理 也沒有使用finally塊來關(guān)閉資源
實(shí)際應(yīng)用中 程序可能不想讓執(zhí)行網(wǎng)絡(luò)連接 讀取服務(wù)器數(shù)據(jù)的進(jìn)程一直阻塞 而是希望當(dāng)網(wǎng)絡(luò)連接 讀取操作超過合理時(shí)間之后 系統(tǒng)自動(dòng)認(rèn)為該操作失敗 這個(gè)合理時(shí)間就是超時(shí)時(shí)長 Socket對(duì)象提供了一個(gè)setSoTimeout(int timeout)來設(shè)置超時(shí)時(shí)長 如下的代碼片段所示
Socket s = new Socket( )
//設(shè)置 秒之后即認(rèn)為超時(shí)
s setSoTimeout( )
當(dāng)我們?yōu)镾ocket對(duì)象指定了超時(shí)時(shí)長之后 如果在使用Socket進(jìn)行讀 寫操作完成之前已經(jīng)超出了該時(shí)間限制 那么這些方法就會(huì)拋出SocketTimeoutException異常 程序可以對(duì)該異常進(jìn)行捕捉 并進(jìn)行適當(dāng)處理 如下代碼所示
try
{
//使用Scanner來讀取網(wǎng)絡(luò)輸入流中的數(shù)據(jù)
Scanner scan = new Scanner(s getInputStream())
//讀取一行字符
String line = scan nextLine()
…
}
//捕捉SocketTimeoutException異常
catch(SocketTimeoutException ex)
{
//對(duì)異常進(jìn)行處理
…
}
假設(shè)程序需要為Socket連接服務(wù)器時(shí)指定超時(shí)時(shí)長 即經(jīng)過指定時(shí)間后 如果該Socket還未連接到遠(yuǎn)程服務(wù)器 則系統(tǒng)認(rèn)為該Socket連接超時(shí) 但Socket的所有構(gòu)造器里都沒有提供指定超時(shí)時(shí)長的參數(shù) 所以程序應(yīng)該先創(chuàng)建一個(gè)無連接的Socket 再調(diào)用Socket的connect()方法來連接遠(yuǎn)程服務(wù)器 而connect方法就可以接受一個(gè)超時(shí)時(shí)長參數(shù) 如下代碼所示
//創(chuàng)建一個(gè)無連接的Socket
Socket s = new Socket()
//讓該Socket連接到遠(yuǎn)程服務(wù)器 如果經(jīng)過 秒還沒有連接到 則認(rèn)為連接超時(shí)
s connconnect(new InetAddress(host port) )
返回目錄 瘋狂Java講義
編輯推薦
Java程序性能優(yōu)化 讓你的Java程序更快 更穩(wěn)定
新手學(xué)Java 編程
Java程序設(shè)計(jì)培訓(xùn)視頻教程
lishixinzhi/Article/program/Java/hx/201311/27265
瘋狂Java講義:使用ServletSocket創(chuàng)建TCP服務(wù)器端
使用ServletSocket創(chuàng)建TCP服務(wù)器端
從圖 中看上去TCP通信的兩個(gè)通信實(shí)體之間并沒有服務(wù)器端 客戶端之分 但那是兩個(gè)通信實(shí)體已經(jīng)建立虛擬鏈路之后的示意圖 在兩個(gè)通信實(shí)體沒有建立虛擬鏈路之前 必須有一個(gè)通信實(shí)體先做出 主動(dòng)姿態(tài) 主動(dòng)接收來自其他通信實(shí)體的連接請(qǐng)求
Java中能接受其他通信實(shí)體連接請(qǐng)求的類是ServerSocket ServerSocket對(duì)象用于監(jiān)聽來自客戶端的Socket連接 如果沒有連接 它將一直處于等待狀態(tài) ServerSocket包含一個(gè)監(jiān)聽來自客戶端連接請(qǐng)求的方法
Socket accept() 如果接收到一個(gè)客戶端Socket的連接請(qǐng)求 該方法將返回一個(gè)與客戶端Socket對(duì)應(yīng)的Socket(如圖 所示每個(gè)TCP連接有兩個(gè)Socket) 否則該方法將一直處于等待狀態(tài) 線程也被阻塞
為了創(chuàng)建ServerSocket對(duì)象 ServerSocket類提供了如下幾個(gè)構(gòu)造器
ServerSocket(int port) 用指定的端口port來創(chuàng)建一個(gè)ServerSocket 該端口應(yīng)該是有一個(gè)有效的端口整數(shù)值 ~
ServerSocket(int port int backlog) 增加一個(gè)用來改變連接隊(duì)列長度的參數(shù)backlog
ServerSocket(int port int backlog InetAddress localAddr) 在機(jī)器存在多個(gè) IP地址的情況下 允許通過localAddr這個(gè)參數(shù)來指定將ServerSocket綁定到指定的IP地址
當(dāng)ServerSocket使用完畢 應(yīng)使用ServerSocket的close()方法來關(guān)閉該ServerSocket 通常情況下 服務(wù)器不應(yīng)該只接受一個(gè)客戶端請(qǐng)求 而應(yīng)該不斷地接受來自客戶端的所有請(qǐng)求 所以Java程序通常會(huì)通過循環(huán) 不斷地調(diào)用ServerSocket的accept()方法 如下代碼片段所示
//創(chuàng)建一個(gè)ServerSocket 用于監(jiān)聽客戶端Socket的連接請(qǐng)求
ServerSocket ss = new ServerSocket( )
//采用循環(huán)不斷接受來自客戶端的請(qǐng)求
while (true)
{
//每當(dāng)接受到客戶端Socket的請(qǐng)求 服務(wù)器端也對(duì)應(yīng)產(chǎn)生一個(gè)Socket
Socket s = ss accept()
//下面就可以使用Socket進(jìn)行通信了
…
}
上面程序中創(chuàng)建ServerSocket沒有指定IP地址 則該ServerSocket將會(huì)綁定到本機(jī)默認(rèn)的IP地址 程序中使用 作為該ServerSocket的端口號(hào) 通常推薦使用 以上的端口 主要是為了避免與其他應(yīng)用程序的通用端口沖突
返回目錄 瘋狂Java講義
編輯推薦
Java程序性能優(yōu)化 讓你的Java程序更快 更穩(wěn)定
新手學(xué)Java 編程
lishixinzhi/Article/program/Java/hx/201311/27266
addWindowListener報(bào)錯(cuò),這是瘋狂Java中的源代碼,看看為什么運(yùn)行不了
f.addWindowListener(參數(shù)類型錯(cuò)誤);MyListener繼承了你自己定義的WindowAdapter,但是要求的參數(shù)是WindowListener,java.awt.event.WindowAdapter才繼承了WindowListener。
package?learnAWT;
import?java.awt.*;
//import?java.awt.event.WindowAdapter;
import?java.awt.event.WindowEvent;
public?class?WindowAdapter?{
private?Frame?f??=?new?Frame("test");
private?TextArea?ta?=?new?TextArea(5,30);
class?MyListener?extends?java.awt.event.WindowAdapter
{
}
public?void?init()
{
f.addWindowListener(new?MyListener());//addWindowListener報(bào)錯(cuò),
f.add(ta,BorderLayout.NORTH);
f.pack();
f.setVisible(true);
}
public?static?void?main(String?[]args)
{
new??WindowAdapter().init();
}????
}
這樣就行了。
文章標(biāo)題:瘋狂java代碼 JAVA程序代碼
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/dodopii.html