public ServerThread(Socket s, Face chat, int i) {
this.i = ++i;
Client = s;
//this.port = port;
//skt = new ServerSocket(port);
this.chat = chat;
}
public int getI() {
return this.i;
}
public Socket getClient() {
return this.Client;
}
public void run() {
//chat.ta.append("等待连线......");
try {
//Client = skt.accept(); /* 接收客户连接 */
//chat.ta.append("客户端" + Client.getInetAddress() + "已连线\n");
theInputStream = new BufferedReader(new InputStreamReader(Client
.getInputStream()));
theOutputStream = new PrintStream(Client.getOutputStream());
while (true) {
readin = theInputStream.readLine();
chat.ta.append(readin + "\n");
}
} catch (SocketException e) {
chat.ta.append("连线中断!\n");
chat.clientBtn.setEnabled(true);
chat.serverBtn.setEnabled(true);
chat.tfaddress.setEnabled(true);
chat.tfport.setEnabled(true);
try {
i--;
skt.close();
Client.close();
} catch (IOException err) {
chat.ta.append(err.toString());
}
} catch (IOException e) {
chat.ta.append(e.toString());
}
}
public void dataout(String data) {
theOutputStream.println(data);
}
}
//Client.java
import java.net.*;
import java.io.*;
import javax.swing.Timer;
class Client extends Thread {
Socket skt;
InetAddress host;
int port;
BufferedReader theInputStream;
PrintStream theOutputStream;
String readin;
Face chat;
public Client(String ip, int p, Face chat) {
try {
host = InetAddress.getByName(ip);
port = p;
this.chat = chat;
} catch (IOException e) {
chat.ta.append(e.toString());
}
}
public void run() {
try {
chat.ta.append("尝试连线......");
skt = new Socket(host, port);
chat.ta.append("连线成功\n");
theInputStream = new BufferedReader(new InputStreamReader(skt
.getInputStream()));
theOutputStream = new PrintStream(skt.getOutputStream());
//Timer myTimer = new Timer();
while (true) {
readin = theInputStream.readLine();
chat.ta.append(readin + "\n");
}
} catch (SocketException e) {
chat.ta.append("连线中断!\n");
chat.clientBtn.setEnabled(true);
chat.serverBtn.setEnabled(true);
chat.tfaddress.setEnabled(true);
chat.tfport.setEnabled(true);
try {
skt.close();
} catch (IOException err) {
chat.ta.append(err.toString());
}
} catch (IOException e) {
chat.ta.append(e.toString());
}
}
public void dataout(String data) {
theOutputStream.println(data);
}
}

