服务器端代码:
import java.io.*;
import java.net.*;public class ChatServer { public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(7777);
while(true) {
Socket s = ss.accept();
System.out.println("a client connected!");
DataInputStream dis = new DataInputStream(s.getInputStream());
//String s1 = "";
//while( (s1 = dis.readLine())!= null)
//{
// System.out.println(s1);
//}
String str = dis.readUTF();
System.out.println(str);
dis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}}客户端代码:
import java.awt.*;
import java.io.*;
import java.net.*;
import java.awt.event.*;public class ChatClient extends Frame { TextField tfTxt = new TextField();
TextArea taContent = new TextArea();
Socket s = null; public static void main(String[] args) {
new ChatClient().launchFrame();
} public void launchFrame() {
this.setLocation(400, 300);
this.setSize(300, 300);
add(tfTxt, BorderLayout.SOUTH);
add(taContent, BorderLayout.NORTH);
pack();
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
tfTxt.addActionListener(new TFListener());
setVisible(true);
connect();
}
private void connect() {
try {
Socket s = new Socket("127.0.0.1",7777);
System.out.println("connected!");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private class TFListener implements ActionListener { public void actionPerformed(ActionEvent e) {
String str = tfTxt.getText().trim();
//String s2 = taContent.getText();
taContent.setText(str);
tfTxt.setText("");
try {
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.writeUTF(str);
dos.flush();
dos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}运行客户端的时候,一往TextField里面输入数据发送的时候就出现了如下错误:
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 ChatServer.main(ChatServer.java:18)
请问是什么原因呢?该如何去修改呢?
import java.io.*;
import java.net.*;public class ChatServer { public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(7777);
while(true) {
Socket s = ss.accept();
System.out.println("a client connected!");
DataInputStream dis = new DataInputStream(s.getInputStream());
//String s1 = "";
//while( (s1 = dis.readLine())!= null)
//{
// System.out.println(s1);
//}
String str = dis.readUTF();
System.out.println(str);
dis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}}客户端代码:
import java.awt.*;
import java.io.*;
import java.net.*;
import java.awt.event.*;public class ChatClient extends Frame { TextField tfTxt = new TextField();
TextArea taContent = new TextArea();
Socket s = null; public static void main(String[] args) {
new ChatClient().launchFrame();
} public void launchFrame() {
this.setLocation(400, 300);
this.setSize(300, 300);
add(tfTxt, BorderLayout.SOUTH);
add(taContent, BorderLayout.NORTH);
pack();
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
tfTxt.addActionListener(new TFListener());
setVisible(true);
connect();
}
private void connect() {
try {
Socket s = new Socket("127.0.0.1",7777);
System.out.println("connected!");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private class TFListener implements ActionListener { public void actionPerformed(ActionEvent e) {
String str = tfTxt.getText().trim();
//String s2 = taContent.getText();
taContent.setText(str);
tfTxt.setText("");
try {
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.writeUTF(str);
dos.flush();
dos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}运行客户端的时候,一往TextField里面输入数据发送的时候就出现了如下错误:
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 ChatServer.main(ChatServer.java:18)
请问是什么原因呢?该如何去修改呢?
解决方案 »
- 在线求简单sql语句如何写?。用户登录。会的给看下!谢谢了
- 请问,如何让mouse移动到某个位置时显示一些文字,以浮动的窗口,浮动窗口的底色为黄色,字为黑色
- 函数就是方法吗??
- 走过路过的,请进来看看。一个java新手的苦恼
- 关于url
- JAVA如何进行数据库连接(sql2000)
- 关于与数据库连接的问题
- JBUILDER6.0在WIN2000 PROFESSION下安装,但是JAVA文件没有和JBUILDER关联这是什么原因?
- 请各位大师推荐有关JBuilder4的书,小弟急学,在哪可以找到?
- 急求!关于Java的正则表达式问题
- java private修饰符问题
- 如何点击JFrame的一个按钮后出来一个对话框
import java.io.*;
import java.net.*;
import java.util.logging.Level;
import java.util.logging.Logger;public class ChatServer { public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(7777);
while (true) {
Socket s = ss.accept();
System.out.println("a new client connected!");
final DataInputStream dis = new DataInputStream(s.getInputStream());
new Thread(new Runnable() {//多线程,支持多个客户端
public void run() {
String s1 = "";
try {
while ((s1 = dis.readUTF()) != null) {
System.out.println(s1);
////
////
}
} catch (IOException ex) {
Logger.getLogger(ChatServer.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("断开连接");
}
}
}).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}ChatClient
import java.awt.*;
import java.io.*;
import java.net.*;
import java.awt.event.*;public class ChatClient extends Frame { TextField tfTxt = new TextField();
TextArea taContent = new TextArea();
Socket s = null; public static void main(String[] args) {
new ChatClient().launchFrame();
} public void launchFrame() {
this.setLocation(400, 300);
this.setSize(300, 300);
add(tfTxt, BorderLayout.SOUTH);
add(taContent, BorderLayout.NORTH);
pack();
this.addWindowListener(new WindowAdapter() { @Override
public void windowClosing(WindowEvent e) {
try {
if(s!=null)
s.close();
} catch (IOException ex) {
}
System.exit(0);
}
});
tfTxt.addActionListener(new TFListener());
setVisible(true);
connect();
} private void connect() {
try {
/*Socket 这里的问题*/ s = new Socket("127.0.0.1", 7777);
System.out.println("connected!");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} private class TFListener implements ActionListener { public void actionPerformed(ActionEvent e) {
String str = tfTxt.getText().trim();
//String s2 = taContent.getText();
taContent.setText(str);
tfTxt.setText("");
try {
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.writeUTF(str);
dos.flush();
//dos.close();//////////////////////
} catch (IOException e1) {
e1.printStackTrace();
} }
}
}