歡迎來到小米的博客
希望能和您交流Java編程的知識和見解
BlogJava
首頁
新隨筆
聯系
聚合
管理
隨筆-57 評論-202 文章-17 trackbacks-0
用NIO實現的簡單的網絡服務器端
下面是我的一個簡單的網絡服務器端的程序,程序的流程是監聽ACCEPT事件,然后往客戶端輸出一串字符串。是不是很簡單。
package sample.nio;
import java.io.
*
;
import java.net.
*
;
import java.nio.channels.
*
;
import java.util.
*
;
/**/
/*
*
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author George Hill
* @version 1.0
*/
public
class
Server
{
private
int
port;
public
Server(
int
port)
{
this
.port
=
port;
}
public
void
startServer() throws IOException
{
//
創建ServerSocketChannel并且綁定到指定的端口
ServerSocketChannel ssc
=
ServerSocketChannel.open();
InetSocketAddress address
=
new
InetSocketAddress(InetAddress.getLocalHost(), port);
ssc.socket().bind(address);
ssc.configureBlocking(
false
);
//
創建Selector,并且注冊ACCEPT事件
Selector selector
=
Selector.open();
SelectionKey skey
=
ssc.register(selector, SelectionKey.OP_ACCEPT);
boolean stop
=
false
;
int
n
=
0
;
System.
out
.println(
"
Server Start
"
);
//
輪詢
while
(
!
stop)
{
//
獲取Selector返回的時間值
n
=
selector.select();
//
當傳回的值大于0事,讀時間發生了
if
(n
>
0
)
{
Set
set
=
selector.selectedKeys();
Iterator it
=
set
.iterator();
while
(it.hasNext())
{
skey
=
(SelectionKey) it.next();
it.remove();
if
(skey.isAcceptable())
{
//
從channel()中取得剛剛注冊的Channel
Socket socket
=
((ServerSocketChannel) skey.channel()).accept().socket();
PrintWriter writer
=
new
PrintWriter(socket.getOutputStream(),
true
);
//
將"Hello, World"寫入
writer.write(
"
Hello, World!\n
"
);
//
睡眠3秒
try
{
Thread.sleep(
3000
);
}
catch
(InterruptedException ie)
{
}
//
將"EXIT"寫入Buffer
writer.write(
"
EXIT
"
);
//
退出程序
writer.close();
//
stop = true;
}
}
}
}
ssc.close();
System.
out
.println(
"
Server Stop
"
);
}
public
static
void
main(String[] args) throws Exception
{
Server server
=
new
Server(
5000
);
server.startServer();
}
}
posted on 2005-05-18 12:21
小米
閱讀(727)
評論(0)
編輯
收藏
所屬分類:
Java
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
相關文章:
由JComponent生成BufferedImage
如何將BufferedImage實例保存為BMP文件
關閉JBuilder2005的Smart MemberInsight功能
用JFreeChart畫柱狀圖的范例
用ChartDirector在JSP中畫統計圖
用java.util.Timer定時執行任務
JavaMail的簡單實例
如何比較兩個有可能為null的實例
從SocketChannel對象池中獲取的實例,使用時應注意的問題
JDK Dynamic Proxy模式的簡單范例
小米,生活在深圳,專注于Java,主要從事數據庫和網頁編程。現在在學習著Hibernate和Spring。喜歡游戲、音樂和臺球。聯系方式:georgehill@21cn.com
<
2005年5月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(27)
給我留言
查看公開留言
查看私人留言
隨筆分類
Hibernate(15)
Java(17)
Spring(1)
Struts(5)
其它(5)
數據庫(2)
生活隨筆(12)
隨筆檔案
2006年4月 (1)
2006年3月 (1)
2005年8月 (1)
2005年7月 (11)
2005年6月 (13)
2005年5月 (30)
文章分類
Eclipse(1)
Java(8)
其它(8)
文章檔案
2005年7月 (1)
2005年6月 (13)
2005年5月 (3)
我的朋友們
emu的博客
Java BY
我的鏈接
Java Research
SUN Java技術中文社區
拯救程序員王俊
搜索
積分與排名
積分 - 233109
排名 - 247
最新評論
1.?re: Hibernate的一對一關聯實例
根據寫了報錯了是怎么回事
--33
2.?re: 用java.util.Timer定時執行任務
評論內容較長,點擊標題查看
--yunp
3.?re: Hibernate的一對一關聯實例
好樣的
--vds
4.?re: 如何在Struts中實現分頁顯示數據(1)
PageData中的集合是所有都取出,還是用多少取多少,若是前者,會拖慢系統的。
--李亞男
5.?re: BMP文件格式
評論內容較長,點擊標題查看
--見面
閱讀排行榜
1.?用java.util.Timer定時執行任務(33742)
2.?用JFreeChart畫柱狀圖的范例(10691)
3.?《深入淺出Hibernate》讀書筆記(3)——數據緩存(6107)
4.?《深入淺出Hibernate》讀書筆記(8)——Hibernate分頁(5554)
5.?用ChartDirector在JSP中畫統計圖(5246)
評論排行榜
1.?如何在Struts中實現分頁顯示數據(2)(25)
2.?獻出一份愛心 共同援助重病程序員王俊(22)
3.?Struts的國際化完整解決方案(11)
4.?2005年6月27日,一個值得紀念的日子(9)
5.?《深入淺出Hibernate》讀書筆記(1)——實體對象生命周期(9)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 小米
主站蜘蛛池模板:
亚洲高清一区二区三区电影
|
亚洲色成人中文字幕网站
|
亚洲日韩中文字幕
|
一级毛片免费观看不卡视频
|
亚洲精品成人无限看
|
一级毛片试看60分钟免费播放
|
亚洲av无码乱码在线观看野外
|
香港一级毛片免费看
|
亚洲成片观看四虎永久
|
91av免费在线视频
|
亚洲av中文无码乱人伦在线播放
|
精品国产免费一区二区三区
|
国产av无码专区亚洲av果冻传媒
|
中文字幕无码一区二区免费
|
婷婷久久久亚洲欧洲日产国码AV
|
无遮挡a级毛片免费看
|
亚洲AV中文无码乱人伦
|
伊人久久大香线蕉免费视频
|
久久国产精品亚洲综合
|
男女免费观看在线爽爽爽视频
|
亚洲最大的成人网
|
亚洲Av无码乱码在线观看性色
|
最近免费中文字幕中文高清
|
亚洲精品国产肉丝袜久久
|
在线播放高清国语自产拍免费
|
一本色道久久88亚洲精品综合
|
国产成人免费A在线视频
|
你懂的免费在线观看
|
亚洲18在线天美
|
亚洲成A人片在线观看无码3D
|
a级毛片无码免费真人久久
|
亚洲精品高清国产麻豆专区
|
老司机永久免费网站在线观看
|
国产精品午夜免费观看网站
|
久久精品国产亚洲AV无码麻豆
|
女人18一级毛片免费观看
|
h视频在线观看免费
|
亚洲乱码一二三四区麻豆
|
亚洲国产精品无码久久九九
|
99热这里有免费国产精品
|
美女免费视频一区二区三区
|