请教一个问题! 使用eclipse时,在一台机器上运行的好好的,ctrl+c到另一台上也中eclipse就不能运行,它就报错!但是eclipse不是一个版的! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.awt.*;import java.awt.event.*;import java.io.*;import java.net.*;public class ChatClient { public static void main(String[] args) { frameClient f = new frameClient(); f.launchframe(); } }class frameClient extends Frame { Socket client; TextField typeIn = new TextField(); TextArea printOut = new TextArea(); DataOutputStream toServer ; DataInputStream fromserver; boolean connected = false; public void launchframe() { this.setLocation(300, 400); setSize(300, 400); this.setBackground(Color.orange); printOut.setBackground(Color.orange); BorderLayout bl = new BorderLayout(2, 1); setLayout(bl); this.add(typeIn, BorderLayout.SOUTH); add(printOut, BorderLayout.NORTH); pack(); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { disconnect(); System.exit(0); } } ); typeIn.addActionListener(new typeInListener()); this.setVisible(true); this.connect(); new Thread(new printArea()).start(); } private class typeInListener implements ActionListener { public void actionPerformed(ActionEvent e) { String s = typeIn.getText().trim(); //printOut.setText(s); typeIn.setText(""); printToserver(s); } } public void connect() { try { client = new Socket("169.254.64.49", 8888); toServer = new DataOutputStream(client.getOutputStream()); fromserver = new DataInputStream(client.getInputStream()); connected = true; } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void disconnect() { try { toServer.close(); client.close(); } catch (IOException e) { e.printStackTrace(); } } public void printToserver (String s) { try { toServer.writeUTF(s); toServer.flush(); } catch (IOException e) { e.printStackTrace(); } } private class printArea implements Runnable { public void run() { String str; try { while(connected) { str = fromserver.readUTF(); printOut.setText(str + "\n" +printOut.getText()); } } catch (IOException e) { //e.printStackTrace(); System.out.println("The client is closed"); } finally { try { if(fromserver != null) fromserver.close(); } catch (IOException e) { e.printStackTrace(); } } } }} 答:与Eclipse没有关系。是与toServer = new DataOutputStream(client.getOutputStream()); fromserver = new DataInputStream(client.getInputStream()); 这两个流的读写有关。当服务器的数据还没有发送过来时,客户端有时会有空引用异常。 null那就找使用null的引用的位置。 一个异常处理的问题 String.matches()方法配置多行字符串的问题 java 如何实现Graphics2D画的图形进行缩放? FileRead,FileinputStream和RandomAccessFile有什么区别 JAVA调用水晶报表 怎么用ArrayList存储从数据库里取出的字段写入JTable中? 悲哀!!!java连接不了SQL数据库!!! 新手求助一个关于读取txt文档并将里面的数据分组的问题 在APPLET中如何使用LookAndFeel 谁能告诉我????? 试用Socket写QQ程序,但出现阻塞问题,希望高手指教。 高手解答!IO流问题,数据文件如何分页
import java.awt.event.*;
import java.io.*;
import java.net.*;public class ChatClient {
public static void main(String[] args) {
frameClient f = new frameClient();
f.launchframe();
}
}class frameClient extends Frame { Socket client;
TextField typeIn = new TextField();
TextArea printOut = new TextArea();
DataOutputStream toServer ;
DataInputStream fromserver;
boolean connected = false;
public void launchframe() {
this.setLocation(300, 400);
setSize(300, 400);
this.setBackground(Color.orange);
printOut.setBackground(Color.orange);
BorderLayout bl = new BorderLayout(2, 1);
setLayout(bl);
this.add(typeIn, BorderLayout.SOUTH);
add(printOut, BorderLayout.NORTH);
pack();
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
disconnect();
System.exit(0);
}
} );
typeIn.addActionListener(new typeInListener());
this.setVisible(true);
this.connect();
new Thread(new printArea()).start();
}
private class typeInListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String s = typeIn.getText().trim();
//printOut.setText(s);
typeIn.setText("");
printToserver(s);
}
}
public void connect() {
try {
client = new Socket("169.254.64.49", 8888);
toServer = new DataOutputStream(client.getOutputStream());
fromserver = new DataInputStream(client.getInputStream());
connected = true;
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void disconnect() {
try {
toServer.close();
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void printToserver (String s) {
try {
toServer.writeUTF(s);
toServer.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
private class printArea implements Runnable {
public void run() {
String str;
try {
while(connected) {
str = fromserver.readUTF();
printOut.setText(str + "\n" +printOut.getText());
}
} catch (IOException e) {
//e.printStackTrace();
System.out.println("The client is closed");
} finally {
try {
if(fromserver != null) fromserver.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
toServer = new DataOutputStream(client.getOutputStream());
fromserver = new DataInputStream(client.getInputStream());
这两个流的读写有关。当服务器的数据还没有发送过来时,客户端有时会有空引用异常。
那就找使用null的引用的位置。