rochoc
關(guān)于java、cobol、zos
BlogJava
::
首頁(yè)
::
聯(lián)系
::
聚合
::
管理
6 Posts :: 1 Stories :: 21 Comments :: 0 Trackbacks
常用鏈接
我的隨筆
我的文章
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(4)
給我留言
查看公開(kāi)留言
查看私人留言
我參與的團(tuán)隊(duì)
隨筆檔案
(6)
2009年1月 (5)
2008年12月 (1)
文章分類
(1)
COBOL
JAVA(1)
ORACLE
文章檔案
(1)
2009年1月 (1)
搜索
最新評(píng)論
1.?re: CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(一)
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--qupdater
2.?re: CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(一)
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--rochoc
3.?re: CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(一)
@ lmlm3000
下面把我已經(jīng)在Linux上測(cè)試通過(guò)的代碼放上來(lái)
--rochoc
4.?re: CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(一)
@ lmlm3000
因?yàn)榧依餂](méi)有LINUX系統(tǒng),我周一去公司試一下,看能否解決
--rochoc
5.?re: CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(一)
關(guān)注下HttpComponents,用該包的話,使用request,header非常方便
-- lmlm3000
閱讀排行榜
1.?CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(一)(6834)
2.?CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(二) (2913)
3.?CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(三)(2595)
4.?CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(四)(2033)
5.?希望這里不要隨便清用戶(279)
評(píng)論排行榜
1.?CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(一)(18)
2.?CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(四)(2)
3.?CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(三)(1)
4.?CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(二) (0)
5.?如何讓文章出現(xiàn)在BLOGJAVA的首頁(yè)?(0)
CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(二)
上次寫完(一)實(shí)現(xiàn)總體說(shuō)明后,一直想把源碼放上來(lái),但一直沒(méi)有時(shí)間,今天趁周末把這個(gè)寫完整,今天主要是附上實(shí)現(xiàn)源碼,供有需要的朋友參考,當(dāng)然也希望大家多多指教。上篇文章講到了這個(gè)實(shí)現(xiàn)是基于SOCKET實(shí)現(xiàn)的,當(dāng)然通訊協(xié)議是自定義,上一篇也有朋友說(shuō)采用http協(xié)議比較簡(jiǎn)單,當(dāng)然這個(gè)也是一種方法,但要使用http協(xié)議,則服務(wù)端要有http服務(wù)這樣會(huì)導(dǎo)致服務(wù)端過(guò)于龐大。
本實(shí)現(xiàn)包括:
1、AUPD.java 服務(wù)端和客戶端之間的通訊協(xié)議
2、AutoUpdateServer.java 服務(wù)端的監(jiān)聽(tīng)進(jìn)程
3、AUpdSrvProc.java服務(wù)端的服務(wù)線程,用于處理客戶端的自動(dòng)升級(jí)請(qǐng)求
4、ClientVerParser.java服務(wù)端服務(wù)線程用于解決客戶端版本信息的類
5、AutoUpdateClient.java客戶端的自動(dòng)升級(jí)請(qǐng)求進(jìn)程
6、Config.java用于服務(wù)端和客戶端讀取本地配制文件的類
7、UpdFile.java用于文件傳輸?shù)奈募?duì)像
本實(shí)現(xiàn)用dom4j作為解釋xml的引擎
AUPD.java :
1
/** */
/**
******************************************************************
2
* 項(xiàng)目名稱 :rochoc<p>
3
* 包名稱 :com.rochoc.autoupdate<p>
4
* 文件名稱 :AutoUpdProtocol.java<p>
5
* 編寫者 :kfzx-luoc<p>
6
* 編寫日期 :2008-12-22<p>
7
* 程序功能(類)描述 :<p>
8
* 定義自動(dòng)升級(jí)客戶端與服務(wù)端的通訊協(xié)議
9
* 程序變更日期 :
10
* 變更作者 :
11
* 變更說(shuō)明 :
12
*******************************************************************
*/
13
package
com.rochoc.autoupdate;
14
15
/** */
/**
16
*
@author
kfzx-luoc
17
*
18
* TODO To change the template for this generated type comment go to
19
* Window - Preferences - Java - Code Style - Code Templates
20
*/
21
public
class
AUPD
22
{
23
/** */
/**
24
* 無(wú)意義操作
25
*/
26
public
static
final
String NONE
=
"
NONE
"
;
27
28
/** */
/**
29
* 發(fā)送客戶端版本信息
30
*/
31
public
static
final
String SEND_CLIENT_VERSION
=
"
SENDCVER
"
;
32
33
/** */
/**
34
* 接收客戶端版本信息
35
*/
36
public
static
final
String RECEIVED_CLIENT_VERSION
=
"
RECDCVER
"
;
37
38
/** */
/**
39
* 發(fā)送文件全路徑
40
*/
41
public
static
final
String SEND_FILE_ABSOULT
=
"
SENDFILE
"
;
42
43
/** */
/**
44
* 接收文件全路徑
45
*/
46
public
static
final
String RECEIVED_FILE_ABSOULT
=
"
RECDFILE
"
;
47
48
/** */
/**
49
* 開(kāi)始文件傳輸
50
*/
51
public
static
final
String START_TRANSMIT
=
"
STARTTSM
"
;
52
53
/** */
/**
54
* 結(jié)束文件傳輸
55
*/
56
public
static
final
String TERMINATE_TRANSMIT
=
"
TERMTSMT
"
;
57
58
/** */
/**
59
* 更新失敗
60
*/
61
public
static
final
String UPDATED_FAILURE
=
"
UPDEFAIL
"
;
62
63
/** */
/**
64
* 更新成功
65
*/
66
public
static
final
String UPDATED_SUCCESSFUL
=
"
UPDESUCC
"
;
67
68
/** */
/**
69
* 無(wú)需更新
70
*/
71
public
static
final
String NOTNEED_UPDATED
=
"
NNEEDUPD
"
;
72
73
/** */
/**
74
* 已經(jīng)準(zhǔn)備好接收更新文件
75
*/
76
public
static
final
String READY_TO_UPDATE
=
"
READYTUP
"
;
77
78
/** */
/**
79
* 結(jié)束鏈接
80
*/
81
public
static
final
String BYE
=
"
BYEBYEOK
"
;
82
83
/** */
/**
84
* 數(shù)據(jù)區(qū)OFFSET
85
*/
86
public
static
final
int
DATA_OFFSET
=
5
;
87
88
/** */
/**
89
* 文件數(shù)據(jù)塊大小
90
*/
91
public
static
final
int
DATA_SIZE
=
1024
;
92
93
/** */
/**
94
* 發(fā)送緩沖區(qū)大小
95
*/
96
public
static
final
int
BUFFER_SIZE
=
DATA_SIZE
+
1
+
4
;
//
[0]位是標(biāo)志位,區(qū)分?jǐn)?shù)據(jù)和命令 + 4位長(zhǎng)度
97
98
/** */
/**
99
* 數(shù)據(jù)段標(biāo)識(shí)
100
*/
101
public
static
final
int
MARK_DATA_SECT
=
0
;
102
/** */
/**
103
* 命令段標(biāo)識(shí)
104
*/
105
public
static
final
int
CMD_DATA_SECT
=
1
;
106
107
/** */
/**
108
* 數(shù)據(jù)段結(jié)束標(biāo)識(shí)
109
*/
110
public
static
final
int
MARK_DATA_END
=
127
;
111
}
112
AutoUpdateServer.java :
1
/** */
/**
******************************************************************
2
* 項(xiàng)目名稱 :rochoc<p>
3
* 包名稱 :com.rochoc.autoupdate<p>
4
* 文件名稱 :AutoUpdateServer.java<p>
5
* 編寫者 :kfzx-luoc<p>
6
* 編寫日期 :2008-12-22<p>
7
* 程序功能(類)描述 :<p>
8
* 自動(dòng)更新服務(wù)端
9
* 程序變更日期 :
10
* 變更作者 :
11
* 變更說(shuō)明 :
12
*******************************************************************
*/
13
package
com.rochoc.autoupdate;
14
15
import
java.io.IOException;
16
import
java.net.ServerSocket;
17
import
java.net.Socket;
18
19
/** */
/**
20
*
@author
kfzx-luoc
21
*
22
* TODO To change the template for this generated type comment go to
23
* Window - Preferences - Java - Code Style - Code Templates
24
*/
25
public
class
AutoUpdateServer
extends
Thread
26
{
27
private
int
port
=
0
;
//
服務(wù)端口號(hào)
28
private
Config config
=
Config.getInstance();
//
配置文件對(duì)像
29
private
ServerSocket srvSocket
=
null
;
30
public
AutoUpdateServer()
31
{
32
port
=
Integer.parseInt(config.getServerPort());
33
try
34
{
35
srvSocket
=
new
ServerSocket(port);
36
//
setTimeout(60000);
37
this
.start();
38
Config.print(
"
自動(dòng)更新服務(wù)器在端口'
"
+
port
+
"
'監(jiān)聽(tīng)
"
);
39
}
catch
(IOException e)
40
{
41
e.printStackTrace();
42
}
43
}
44
void
setTimeout(
int
millis)
throws
IOException
45
{
46
if
(srvSocket
!=
null
)
47
{
48
srvSocket.setSoTimeout(millis);
49
}
50
}
51
void
close()
throws
IOException
52
{
53
if
(srvSocket
!=
null
)
54
{
55
srvSocket.close();
56
}
57
}
58
/** */
/**
59
*
@author
kfzx-luoc
60
*
61
* 執(zhí)行監(jiān)聽(tīng)處理,如果有客戶端連接上來(lái),則判斷是否需要更新,
62
* 如果需要更新,則給客戶端傳送最新版本文件
63
*/
64
public
void
run()
65
{
66
try
67
{
68
while
(
true
)
69
{
70
Socket clSocket
=
null
;
71
try
72
{
73
clSocket
=
srvSocket.accept();
74
Config.print(
"
客戶端‘
"
+
clSocket.getInetAddress()
+
"
’連接成功
"
);
75
//
進(jìn)行處理
76
AUpdSrvProc srvP
=
new
AUpdSrvProc(clSocket);
77
srvP.start();
78
}
catch
(IOException ioe)
79
{
80
try
81
{
82
clSocket.close();
83
}
catch
(IOException e1)
84
{
85
}
86
Config.print(
"
AutoUpdateServer proc client:
"
+
clSocket.getInetAddress().getHostAddress()
+
"
error,
"
+
ioe);
87
ioe.printStackTrace();
88
}
89
}
90
}
catch
(Exception e)
91
{
92
Config.print(
"
AutoUpdateServer running error,
"
+
e);
93
e.printStackTrace();
94
}
finally
95
{
96
try
97
{
98
srvSocket.close();
99
}
catch
(IOException e)
100
{
101
}
102
}
103
}
104
//
測(cè)試主函數(shù)
105
public
static
void
main(String args[])
106
{
107
AutoUpdateServer server
=
new
AutoUpdateServer();
108
server.run();
109
}
110
}
111
避免太大,其他源碼見(jiàn)(三)
運(yùn)行服務(wù)端:
java -cp .;.\bin;.\lib\dom4j-1.6.1.jar;.\lib\jaxen-1.1-beta-4.jar com.icbc.autoupdate.AutoUpdateServer
運(yùn)行客戶端:
java -cp ./bin;./lib/jaxen-1.1-beta-4.jar;./lib/dom4j-1.6.1.jar; com.icbc.autoupdate.AutoUpdateClient
posted on 2009-01-09 21:18
rochoc
閱讀(2913)
評(píng)論(0)
編輯
收藏
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
Copyright @ rochoc
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster
主站蜘蛛池模板:
亚洲一级Av无码毛片久久精品
|
精品亚洲国产成AV人片传媒
|
亚洲国产精品久久人人爱
|
手机永久免费的AV在线电影网
|
成人免费福利视频
|
永久亚洲成a人片777777
|
亚洲欧洲精品成人久久曰
|
99精品视频免费观看
|
亚洲精品在线视频
|
亚洲人成网亚洲欧洲无码
|
84pao国产成视频免费播放
|
在线a亚洲v天堂网2019无码
|
噜噜噜亚洲色成人网站
|
欧美好看的免费电影在线观看
|
亚洲日本va午夜中文字幕一区
|
国产精品偷伦视频免费观看了
|
日本免费中文字幕在线看
|
亚洲ts人妖网站
|
最近2019中文字幕免费大全5
|
亚洲色婷婷六月亚洲婷婷6月
|
免费无码国产V片在线观看
|
免费无码黄动漫在线观看
|
亚洲中文无码a∨在线观看
|
国产午夜不卡AV免费
|
久久久久亚洲AV无码专区网站
|
国产成人亚洲午夜电影
|
在线免费观看视频你懂的
|
亚洲人成网站日本片
|
蜜臀98精品国产免费观看
|
久久亚洲精品AB无码播放
|
爽爽爽爽爽爽爽成人免费观看
|
精品亚洲一区二区三区在线观看
|
美女无遮挡免费视频网站
|
成年女人午夜毛片免费视频
|
亚洲人成电影网站
|
91人人区免费区人人
|
亚洲人成电影亚洲人成9999网
|
成全在线观看免费观看大全
|
亚洲色大成网站www永久一区
|
亚洲av永久无码精品网站
|
国产一二三四区乱码免费
|