预备打仗
圣经说,我们都处于生命的战场中。不单我们的肉身在争战中,我们的属灵生命也会死处于一场争战当中。既然我们知道自己处于争战当中,就需要为这场争战作好准备。
BlogJava
|
首页
|
发新随笔
|
发新文章
|
联系
|
聚合
|
管理
【Java聊天程序中老是报错---------】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(
"
服务器窗口
"
);
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();
}
}
}
}
运行时,老是报错误:
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)
--------------------------------------------------------------------------------------------------
有人说,我的客户端里要再写一个线程,因为main线程主要是用于维护图形界面,要另写个线程来发送数据到客户端
是这样吗?
发表于 2008-10-22 22:12
kingyan
阅读(1834)
评论(0)
编辑
收藏
所属分类:
问题讨论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
【Java聊天程序中老是报错---------】java.net.SocketException: Connection reset
大家写JAVA程序用的是什么开发工具和数据库啊
随笔:0 文章:3 评论:2 引用:0
<
2024年12月
>
日
一
二
三
四
五
六
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
留言簿
(1)
给我留言
查看公开留言
查看私人留言
文章分类
J2SE技术
(rss)
JDBC技术
(rss)
问题讨论(2)
(rss)
文章档案
2008年10月 (1)
2007年11月 (1)
2007年10月 (1)
搜索
最新评论
1. re: 大家写JAVA程序用的是什么开发工具和数据库啊
数据库用Oracle
开发工具用Eclipse
--gaozi
2. re: 大家写JAVA程序用的是什么开发工具和数据库啊
用Eclipse+Mysql免费而强大的东西
--111