預(yù)備打仗
圣經(jīng)說,我們都處于生命的戰(zhàn)場(chǎng)中。不單我們的肉身在爭(zhēng)戰(zhàn)中,我們的屬靈生命也會(huì)死處于一場(chǎng)爭(zhēng)戰(zhàn)當(dāng)中。既然我們知道自己處于爭(zhēng)戰(zhàn)當(dāng)中,就需要為這場(chǎng)爭(zhēng)戰(zhàn)作好準(zhǔn)備。
BlogJava
|
首頁
|
發(fā)新隨筆
|
發(fā)新文章
|
聯(lián)系
|
聚合
|
管理
【Java聊天程序中老是報(bào)錯(cuò)---------】java.net.SocketException: Connection reset
import
java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
import
java.net.ServerSocket;
import
java.net.Socket;
import
javax.swing.JFrame;
import
javax.swing.JMenu;
import
javax.swing.JMenuBar;
import
javax.swing.JMenuItem;
public
class
Server
implements
ActionListener
{
public
Server()
{
JFrame jf
=
new
JFrame(
"
服務(wù)器窗口
"
);
JMenu jm
=
new
JMenu(
"
Admin
"
);
JMenuItem jmi
=
new
JMenuItem(
"
Start
"
);
jmi.addActionListener(
this
);
JMenuBar jmb
=
new
JMenuBar();
jm.add(jmi);
jmb.add(jm);
jf.setJMenuBar(jmb);
jf.setSize(
200
,
300
);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(
true
);
}
public
static
void
main(String[] args)
{
new
Server();
}
public
void
actionPerformed(ActionEvent e)
{
try
{
ServerSocket ss
=
new
ServerSocket(
8888
);
Socket so
=
ss.accept();
new
ServerThread(so).start();
}
catch
(Exception e1)
{
e1.printStackTrace();
}
}
}
import
java.io.DataInputStream;
import
java.io.DataOutputStream;
import
java.io.IOException;
import
java.net.Socket;
public
class
ServerThread
extends
Thread
{
private
Socket so;
private
String word;
public
ServerThread(Socket so)
{
this
.so
=
so;
}
public
void
run()
{
try
{
DataInputStream dis
=
new
DataInputStream(so.getInputStream());
DataOutputStream dos
=
new
DataOutputStream(so.getOutputStream());
while
(
true
)
{
String temp
=
dis.readUTF();
if
(
"
bye
"
.equals(temp))
break
;
word
=
"
Server:
"
+
temp;
dos.writeUTF(word);
}
dos.close();dis.close();so.close();
}
catch
(IOException e)
{
e.printStackTrace();
}
}
}
import
java.awt.BorderLayout;
import
java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
import
java.io.DataInputStream;
import
java.io.DataOutputStream;
import
java.io.IOException;
import
java.net.Socket;
import
java.net.UnknownHostException;
import
javax.swing.JButton;
import
javax.swing.JFrame;
import
javax.swing.JPanel;
import
javax.swing.JTextArea;
import
javax.swing.JTextField;
public
class
Client
implements
ActionListener
{
JFrame jf
=
new
JFrame(
"
客戶端窗口
"
);
JButton jb1
=
new
JButton(
"
Send
"
);
JTextField jtf
=
new
JTextField(
15
);
JTextArea jta
=
new
JTextArea();
public
Client()
{
JPanel jp1
=
new
JPanel();
jp1.add(jtf);jp1.add(jb1);
jb1.addActionListener(
this
);
jf.setLayout(
new
BorderLayout());
jf.add(jp1,
new
BorderLayout().NORTH);
jf.add(jta);
jf.setSize(
300
,
400
);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(
true
);
}
public
static
void
main(String args[])
{
new
Client();
}
public
void
actionPerformed(ActionEvent e)
{
if
(e.getSource()
==
jtf
||
e.getSource()
==
jb1)
{
try
{
Socket so
=
new
Socket(
"
127.0.0.1
"
,
8888
);
DataInputStream dis
=
new
DataInputStream(so.getInputStream());
DataOutputStream dos
=
new
DataOutputStream(so.getOutputStream());
while
(
true
)
{
String temp
=
jtf.getText();
dos.writeUTF(temp);
if
(
"
bye
"
.equals(temp))
break
;
String str
=
dis.readUTF();
}
dos.close();dis.close();so.close();
}
catch
(IOException e1)
{
e1.printStackTrace();
}
}
}
}
運(yùn)行時(shí),老是報(bào)錯(cuò)誤:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.DataInputStream.readUnsignedShort(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at ServerThread.run(ServerThread.java:18)
--------------------------------------------------------------------------------------------------
有人說,我的客戶端里要再寫一個(gè)線程,因?yàn)閙ain線程主要是用于維護(hù)圖形界面,要另寫個(gè)線程來發(fā)送數(shù)據(jù)到客戶端
是這樣嗎?
發(fā)表于 2008-10-22 22:12
kingyan
閱讀(1834)
評(píng)論(0)
編輯
收藏
所屬分類:
問題討論
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
【Java聊天程序中老是報(bào)錯(cuò)---------】java.net.SocketException: Connection reset
大家寫JAVA程序用的是什么開發(fā)工具和數(shù)據(jù)庫啊
隨筆:0 文章:3 評(píng)論:2 引用:0
<
2025年5月
>
日
一
二
三
四
五
六
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
5
6
7
留言簿
(1)
給我留言
查看公開留言
查看私人留言
文章分類
J2SE技術(shù)
(rss)
JDBC技術(shù)
(rss)
問題討論(2)
(rss)
文章檔案
2008年10月 (1)
2007年11月 (1)
2007年10月 (1)
搜索
最新評(píng)論
1.?re: 大家寫JAVA程序用的是什么開發(fā)工具和數(shù)據(jù)庫啊
數(shù)據(jù)庫用Oracle
開發(fā)工具用Eclipse
--gaozi
2.?re: 大家寫JAVA程序用的是什么開發(fā)工具和數(shù)據(jù)庫啊
用Eclipse+Mysql免費(fèi)而強(qiáng)大的東西
--111
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 kingyan
主站蜘蛛池模板:
久久国产精品亚洲综合
|
kk4kk免费视频毛片
|
亚洲日韩精品无码专区加勒比☆
|
337p欧洲亚洲大胆艺术
|
亚洲综合国产精品
|
91亚洲精品视频
|
亚洲精品视频在线播放
|
亚洲国产美女视频
|
伊人亚洲综合青草青草久热
|
亚欧免费视频一区二区三区
|
情人伊人久久综合亚洲
|
亚洲啪啪AV无码片
|
国产亚洲美女精品久久久久狼
|
免费看AV毛片一区二区三区
|
国内外成人免费视频
|
在线播放免费人成毛片乱码
|
亚洲最大福利视频
|
国产亚洲日韩在线三区
|
a级亚洲片精品久久久久久久
|
精品亚洲一区二区
|
久久久亚洲裙底偷窥综合
|
国产日本亚洲一区二区三区
|
亚洲老熟女五十路老熟女bbw
|
久久久久亚洲AV无码去区首
|
亚洲国产成人久久精品app
|
成人午夜视频免费
|
久久精品无码精品免费专区
|
99久久综合精品免费
|
永久在线观看免费视频
|
最近中文字幕mv免费高清视频8
|
国产香蕉免费精品视频
|
香蕉高清免费永久在线视频
|
亚洲一区二区视频在线观看
|
亚洲国产成人久久精品动漫
|
久久被窝电影亚洲爽爽爽
|
91亚洲国产成人精品下载
|
亚洲中文字幕久久无码
|
亚洲AV一二三区成人影片
|
亚洲视频一区在线
|
亚洲av最新在线观看网址
|
亚洲狠狠婷婷综合久久蜜芽
|