rochoc
關(guān)于java、cobol、zos
BlogJava
::
首頁
::
聯(lián)系
::
聚合
::
管理
6 Posts :: 1 Stories :: 21 Comments :: 0 Trackbacks
常用鏈接
我的隨筆
我的文章
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(4)
給我留言
查看公開留言
查看私人留言
我參與的團(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è)試通過的代碼放上來
--rochoc
4.?re: CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(一)
@ lmlm3000
因?yàn)榧依餂]有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)(一)(6833)
2.?CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(二) (2912)
3.?CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(三)(2594)
4.?CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(四)(2032)
5.?希望這里不要隨便清用戶(278)
評(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的首頁?(0)
CS結(jié)構(gòu)軟件自動(dòng)升級(jí)實(shí)現(xiàn)(二)
上次寫完(一)實(shí)現(xiàn)總體說明后,一直想把源碼放上來,但一直沒有時(shí)間,今天趁周末把這個(gè)寫完整,今天主要是附上實(shí)現(xiàn)源碼,供有需要的朋友參考,當(dāng)然也希望大家多多指教。上篇文章講到了這個(gè)實(shí)現(xiàn)是基于SOCKET實(shí)現(xiàn)的,當(dāng)然通訊協(xié)議是自定義,上一篇也有朋友說采用http協(xié)議比較簡(jiǎn)單,當(dāng)然這個(gè)也是一種方法,但要使用http協(xié)議,則服務(wù)端要有http服務(wù)這樣會(huì)導(dǎo)致服務(wù)端過于龐大。
本實(shí)現(xiàn)包括:
1、AUPD.java 服務(wù)端和客戶端之間的通訊協(xié)議
2、AutoUpdateServer.java 服務(wù)端的監(jiān)聽進(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
* 變更說明 :
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
* 無意義操作
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
* 開始文件傳輸
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
* 無需更新
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
* 變更說明 :
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)聽
"
);
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)聽處理,如果有客戶端連接上來,則判斷是否需要更新,
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
避免太大,其他源碼見(三)
運(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
閱讀(2912)
評(píng)論(0)
編輯
收藏
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Copyright @ rochoc
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster
主站蜘蛛池模板:
女人被男人躁的女爽免费视频
|
日韩免费精品视频
|
最近2019免费中文字幕6
|
1000部羞羞禁止免费观看视频
|
九九九精品成人免费视频
|
日韩免费视频播放
|
亚洲综合精品香蕉久久网
|
亚洲精品天天影视综合网
|
最新国产成人亚洲精品影院
|
美女视频黄.免费网址
|
日本免费久久久久久久网站
|
91在线视频免费看
|
亚洲成人国产精品
|
亚洲AV日韩AV永久无码免下载
|
亚洲小视频在线播放
|
国产AV无码专区亚洲AV蜜芽
|
精品乱子伦一区二区三区高清免费播放
|
selaoban在线视频免费精品
|
久久99热精品免费观看动漫
|
24小时免费直播在线观看
|
国产gv天堂亚洲国产gv刚刚碰
|
亚洲国产精品线观看不卡
|
国产精品成人亚洲
|
99国产精品免费视频观看
|
日本免费网站在线观看
|
亚洲成a人片在线观看日本
|
亚洲影院天堂中文av色
|
国产真人无码作爱视频免费
|
成年女人免费视频播放77777
|
亚洲国产一区明星换脸
|
亚洲无线一二三四区
|
深夜特黄a级毛片免费播放
|
精品国产免费人成电影在线观看
|
免费成人午夜视频
|
亚洲国产成人无码av在线播放
|
免费在线人人电影网
|
国产免费不卡v片在线观看
|
夜夜春亚洲嫩草影院
|
亚洲国产成人久久一区二区三区
|
大地资源在线资源免费观看
|
国产国产人免费人成免费视频
|