服务器端 :
import java.io.DataInputStream;
import java.io.IOException;
import java.net.BindException;
import java.net.ServerSocket;
import java.net.Socket;
public class ChatServer {
public static void main(String[] args) {
boolean started = false;
Socket socket = null;
ServerSocket serverSocket = null;
DataInputStream dis = null;
try {
serverSocket = new ServerSocket(7777);
}
catch(BindException e2) {
System.out.println("端口使用中 ... ...");
System.out.println("请关闭双关程序!");
System.exit(0);
}
catch(Exception e) {
e.printStackTrace();
}
try{
started = true;
while(started) {
boolean bConnected = false;
socket = serverSocket.accept();
System.out.println("连接上了... ...");
bConnected = true;
dis = new DataInputStream(socket.getInputStream());
while(bConnected){
String str = dis.readUTF();
System.out.println(str);
}
}
} catch (IOException e) {
System.out.println("Server 关闭");
}finally {
try {
if(dis != null)dis.close();
if(socket != null)socket.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
客户端 :
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class ChatClient extends Frame {
Socket socket = null;
TextField textField = new TextField();
TextArea textArea = new TextArea();
DataOutputStream dos = null;
public void MainFrame() {
setLocation(200, 200);
setSize(400, 300);
add(textArea,BorderLayout.NORTH);
add(textField,BorderLayout.SOUTH);
textField.addActionListener(new TextFieldListener());
pack();
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
disConnect();
System.exit(0);
}
});
setVisible(true);
connect();
}
private class TextFieldListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String str = textField.getText();
textArea.setText(str);
textField.setText("");
try {
dos.writeUTF(str);
dos.flush();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
public void disConnect() {
try {
dos.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void connect() {
try {
socket = new Socket("127.0.0.1",7777);
dos = new DataOutputStream(socket.getOutputStream());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new ChatClient().MainFrame();
}
}