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免费网址在线观看
|
国产午夜免费福利红片
|
亚洲色大18成人网站WWW在线播放
|
最好看的中文字幕2019免费
|
亚洲不卡中文字幕无码
|
最近更新免费中文字幕大全
|
亚洲中文字幕无码一区二区三区
|
国产男女爽爽爽免费视频
|
亚洲最大AV网站在线观看
|
jizz免费在线影视观看网站
|
国产精品xxxx国产喷水亚洲国产精品无码久久一区
|
亚洲gv白嫩小受在线观看
|
免费精品99久久国产综合精品
|
五月天网站亚洲小说
|
一色屋成人免费精品网站
|
亚洲天然素人无码专区
|
四虎影视永久免费观看网址
|
www成人免费视频
|
久久亚洲成a人片
|
中文字幕人成无码免费视频
|
国产成人精品久久亚洲高清不卡
|
免费观看午夜在线欧差毛片
|
香蕉97碰碰视频免费
|
久久亚洲2019中文字幕
|
无码AV片在线观看免费
|
亚洲午夜精品一区二区麻豆
|
国产午夜鲁丝片AV无码免费
|
精精国产www视频在线观看免费
|
日韩亚洲AV无码一区二区不卡
|
亚洲AV成人一区二区三区观看
|
亚洲精品无码久久毛片
|
久久九九兔免费精品6
|
色窝窝亚洲AV网在线观看
|
亚洲爆乳无码专区
|
处破痛哭A√18成年片免费
|
一区二区三区免费电影
|
亚洲精品综合久久中文字幕
|
国产精品国产免费无码专区不卡
|
免费看黄的成人APP
|
亚洲色大情网站www
|