import java.awt.*;
public class ChatClient extends Frame {
public static void main(String[] args) { ChatClient cc = new ChatClient();
https://www.wendangku.net/doc/9b3172500.html,unchFrame();
}
public void launchFrame(){
this.setLocation(400,300);
this.setSize(300,300);
this.setVisible(true);
}
}
import java.awt.*;
public class ChatClient extends Frame {
TextField tfTxt = new TextField();//定义成员变量tfTxt
TextArea taContent = new TextArea();//定义成员变量taContent
public static void main(String[] args) {
new ChatClient().launchFrame();//创建一个对象来调用窗口}
public void launchFrame(){
setLocation(400,300);//定义窗口出现的初始位置
this.setSize(300,300);//定义窗口初始大小
//使用BorderLayout布局
add(tfTxt , BorderLayout.SOUTH);
add(taContent , BorderLayout.NORTH);
pack();
setVisible(true);//设置可见性
}
}
import java.awt.*;
import java.awt.event.*;
public class ChatClient extends Frame {
TextField tfTxt = new TextField();//定义成员变量tfTxt
TextArea taContent = new TextArea();//定义成员变量taContent
public static void main(String[] args) {
new ChatClient().launchFrame();//创建一个对象来调用窗口}
public void launchFrame(){
setLocation(400,300);//定义窗口出现的初始位置
this.setSize(300,300);//定义窗口初始大小
//使用BorderLayout布局
add(tfTxt , BorderLayout.SOUTH);
add(taContent , BorderLayout.NORTH);
pack();
//实现窗口关闭功能
this.addWindowListener(new WindowAdapter(){ //匿名类
@Override //标记符
//重写windowClosing方法
public void windowClosing(WindowEvent arg0) {
System.exit(0);
}
});
setVisible(true);//设置可见性
}
}
import java.awt.*;
import java.awt.event.*;
public class ChatClient extends Frame {
TextField tfTxt = new TextField();//定义成员变量tfTxt
TextArea taContent = new TextArea();//定义成员变量taContent public static void main(String[] args) {
new ChatClient().launchFrame();//创建一个对象来调用窗口}
public void launchFrame(){
setLocation(400,300);//定义窗口出现的初始位置
this.setSize(300,300);//定义窗口初始大小
//使用BorderLayout布局
add(tfTxt , BorderLayout.SOUTH);
add(taContent , BorderLayout.NORTH);
pack();
//实现窗口关闭功能
this.addWindowListener(new WindowAdapter(){ //匿名类
@Override //标记符
//重写windowClosing方法
public void windowClosing(WindowEvent arg0) {
System.exit(0);
}
});
//调用TfListener(),实现输入功能
tfTxt.addActionListener(new TfListener());
setVisible(true);//设置可见性
}
//功能:从tf输入文字->显示到ta上
//实现方法:使用内部类。因为不需要外部访问。
private class TfListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String s = tfTxt.getText().trim(); //trim()去掉空调
taContent.setText(s);
tfTxt.setText("");
}
}
}
ChatServer
import java.io.IOException;
import https://www.wendangku.net/doc/9b3172500.html,.*;
public class ChatServer {
public static void main(String[] args) {
//服务器启动
try {
ServerSocket ss = new ServerSocket(8888);
while(true){
Socket s = ss.accept();
System.out.println("a client connected!");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
ChatClient.java
import java.awt.*;
import java.awt.event.*;
import java.io.DataOutputStream;
import java.io.IOException;
import https://www.wendangku.net/doc/9b3172500.html,.Socket;
import https://www.wendangku.net/doc/9b3172500.html,.UnknownHostException;
import java.io.*;
public class ChatClient extends Frame {
Socket s = null;
TextField tfTxt = new TextField();//定义成员变量tfTxt
TextArea taContent = new TextArea();//定义成员变量taContent
public static void main(String[] args) {
new ChatClient().launchFrame();//创建一个对象来调用窗口}
public void launchFrame(){
setLocation(400,300);//定义窗口出现的初始位置
this.setSize(300,300);//定义窗口初始大小
//使用BorderLayout布局
add(tfTxt , BorderLayout.SOUTH);
add(taContent , BorderLayout.NORTH);
pack();
//实现窗口关闭功能
this.addWindowListener(new WindowAdapter(){ //匿名类
@Override //标记符
//重写windowClosing方法
public void windowClosing(WindowEvent arg0) {
System.exit(0);
}
});
//调用TfListener(),实现输入功能
tfTxt.addActionListener(new TfListener());
setVisible(true);//设置可见性
connect();
}
//功能:从tf输入文字->显示到ta上
//实现方法:使用内部类。因为不需要外部访问。
private class TfListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String str = tfTxt.getText().trim(); //trim()去掉空格
taContent.setText(str);
tfTxt.setText("");
}
}
//客户端启动连接到服务器
public void connect(){
try {
s = new Socket("127.0.0.1" , 8888);
System.out.println("Connected!");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ChatServer.java
import java.io.IOException;
import https://www.wendangku.net/doc/9b3172500.html,.*;
import java.io.*;
public class ChatServer {
public static void main(String[] args) {
//服务器启动
try {
ServerSocket ss = new ServerSocket(8888);
while(true){
//等待客户端连接
Socket s = ss.accept();
System.out.println("a client connected!");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Chat 0.7
ChatClient.java
import java.awt.*;
import java.awt.event.*;
import java.io.DataOutputStream;
import java.io.IOException;
import https://www.wendangku.net/doc/9b3172500.html,.Socket;
import https://www.wendangku.net/doc/9b3172500.html,.UnknownHostException;
import java.io.*;
public class ChatClient extends Frame {
Socket s = null;
TextField tfTxt = new TextField();//定义成员变量tfTxt
TextArea taContent = new TextArea();//定义成员变量taContent
public static void main(String[] args) {
new ChatClient().launchFrame();//创建一个对象来调用窗口}
public void launchFrame(){
setLocation(400,300);//定义窗口出现的初始位置
this.setSize(300,300);//定义窗口初始大小
//使用BorderLayout布局
add(tfTxt , BorderLayout.SOUTH);
add(taContent , BorderLayout.NORTH);
pack();
//实现窗口关闭功能
this.addWindowListener(new WindowAdapter(){ //匿名类
@Override //标记符
//重写windowClosing方法
public void windowClosing(WindowEvent arg0) {
System.exit(0);
}
});
//调用TfListener(),实现输入功能
tfTxt.addActionListener(new TfListener());
setVisible(true);//设置可见性
connect();
}
//功能:从tf输入文字->显示到ta上
//实现方法:使用内部类。因为不需要外部访问。
private class TfListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String str = tfTxt.getText().trim(); //trim()去掉空格
taContent.setText(str);
tfTxt.setText("");
//将文字传输到服务器端
try {
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.writeUTF(str);
dos.flush();
dos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
//客户端启动连接到服务器
public void connect(){
try {
s = new Socket("127.0.0.1" , 8888);
System.out.println("Connected!");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ChatServer.java
import java.io.IOException;
import https://www.wendangku.net/doc/9b3172500.html,.*;
import java.io.*;
public class ChatServer {
public static void main(String[] args) {
//服务器启动
try {
ServerSocket ss = new ServerSocket(8888);
while(true){
//等待客户端连接
Socket s = ss.accept();
System.out.println("a client connected!");
DataInputStream dis = new DataInputStream(s.getInputStream());
String str = dis.readUTF();
System.out.println(str);
dis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
ChatClient.java
import java.awt.*;
import java.awt.event.*;
import java.io.DataOutputStream;
import java.io.IOException;
import https://www.wendangku.net/doc/9b3172500.html,.Socket;
import https://www.wendangku.net/doc/9b3172500.html,.UnknownHostException;
import java.io.*;
public class ChatClient extends Frame {
Socket s = null;
DataOutputStream dos = null;
TextField tfTxt = new TextField();//定义成员变量tfTxt
TextArea taContent = new TextArea();//定义成员变量taContent
public static void main(String[] args) {
new ChatClient().launchFrame();//创建一个对象来调用窗口}
public void launchFrame(){
setLocation(400,300);//定义窗口出现的初始位置
this.setSize(300,300);//定义窗口初始大小
//使用BorderLayout布局
add(tfTxt , BorderLayout.SOUTH);
add(taContent , BorderLayout.NORTH);
pack();
//实现窗口关闭功能
this.addWindowListener(new WindowAdapter(){ //匿名类
@Override //标记符
//重写windowClosing方法
public void windowClosing(WindowEvent arg0) {
disconnect();
System.exit(0);
}
});
//调用TfListener(),实现输入功能
tfTxt.addActionListener(new TfListener());
setVisible(true);//设置可见性
connect();
//功能:从tf输入文字->显示到ta上
//实现方法:使用内部类。因为不需要外部访问。
private class TfListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String str = tfTxt.getText().trim(); //trim()去掉空格
taContent.setText(str);
tfTxt.setText("");
//将文字传输到服务器端
try {
dos.writeUTF(str);
dos.flush();
//dos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
//客户端启动连接到服务器
public void connect(){
try {
s = new Socket("127.0.0.1" , 8888);
dos = new DataOutputStream(s.getOutputStream()); System.out.println("Connected!");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//与服务器断开连接
public void disconnect(){
try {
dos.close();
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ChatServer.java
import java.io.IOException;
import https://www.wendangku.net/doc/9b3172500.html,.*;
import java.io.*;
public class ChatServer {
public static void main(String[] args) {
//服务器启动
boolean started = false;
try {
ServerSocket ss = new ServerSocket(8888);
started = true;
while(started){
//等待客户端连接
boolean bConnected = false;
Socket s = ss.accept();
System.out.println("a client connected!");
bConnected = true;
DataInputStream dis = new DataInputStream(s.getInputStream());
while(bConnected){
String str = dis.readUTF();
System.out.println(str);
}
dis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Chat 0.9
ChatClient.java
import java.awt.*;
import java.awt.event.*;
import java.io.DataOutputStream;
import java.io.IOException;
import https://www.wendangku.net/doc/9b3172500.html,.Socket;
import https://www.wendangku.net/doc/9b3172500.html,.UnknownHostException;
import java.io.*;
public class ChatClient extends Frame {
Socket s = null;
DataOutputStream dos = null;
TextField tfTxt = new TextField();//定义成员变量tfTxt
TextArea taContent = new TextArea();//定义成员变量taContent
public static void main(String[] args) {
new ChatClient().launchFrame();//创建一个对象来调用窗口}
public void launchFrame(){
setLocation(400,300);//定义窗口出现的初始位置
this.setSize(300,300);//定义窗口初始大小
//使用BorderLayout布局
add(tfTxt , BorderLayout.SOUTH);
add(taContent , BorderLayout.NORTH);
pack();
//实现窗口关闭功能
this.addWindowListener(new WindowAdapter(){ //匿名类
@Override //标记符
//重写windowClosing方法
public void windowClosing(WindowEvent arg0) {
disconnect();
System.exit(0);
}
});
//调用TfListener(),实现输入功能
tfTxt.addActionListener(new TfListener());
setVisible(true);//设置可见性
connect();
}
//功能:从tf输入文字->显示到ta上
//实现方法:使用内部类。因为不需要外部访问。
private class TfListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String str = tfTxt.getText().trim(); //trim()去掉空格
taContent.setText(str);
tfTxt.setText("");
//将文字传输到服务器端
try {
dos.writeUTF(str);
dos.flush();
//dos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
//客户端启动连接到服务器
public void connect(){
try {
s = new Socket("127.0.0.1" , 8888);
dos = new DataOutputStream(s.getOutputStream()); System.out.println("Connected!");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//与服务器断开连接
public void disconnect(){
try {
dos.close();
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ChatServer.java
import java.io.IOException;
import https://www.wendangku.net/doc/9b3172500.html,.*;
import java.io.*;
public class ChatServer {
public static void main(String[] args) {
//服务器启动
boolean started = false;
ServerSocket ss = null;
Socket s = null;
DataInputStream dis = null;
try {
ss = new ServerSocket(8888);
}catch(BindException e){
System.out.println("端口使用中...");
System.out.println("请关闭相应程序并重新运行服务器...");
System.exit(0);
}catch(IOException e){
e.printStackTrace();
}
try{
started = true;
while(started){
//等待客户端连接
boolean bConnected = false;
s = ss.accept();
System.out.println("a client connected!");
bConnected = true;
//接受数据
dis = new DataInputStream(s.getInputStream());
while(bConnected){
String str = dis.readUTF();
System.out.println(str);
}
//dis.close();
}
} catch (EOFException e) {
System.out.println("Client closed!");
} catch (IOException e) {
e.printStackTrace();
//终止服务器
}finally{
try {
if(dis != null ) dis.close();
if(s != null ) s.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
Chat1.0
ChatClient.java
import java.awt.*;
import java.awt.event.*;
import java.io.DataOutputStream;
import java.io.IOException;
import https://www.wendangku.net/doc/9b3172500.html,.Socket;
import https://www.wendangku.net/doc/9b3172500.html,.UnknownHostException;
import java.io.*;
public class ChatClient extends Frame {
Socket s = null;
DataOutputStream dos = null;
TextField tfTxt = new TextField();//定义成员变量tfTxt
TextArea taContent = new TextArea();//定义成员变量taContent
public static void main(String[] args) {
new ChatClient().launchFrame();//创建一个对象来调用窗口}
public void launchFrame(){
setLocation(400,300);//定义窗口出现的初始位置
this.setSize(300,300);//定义窗口初始大小
//使用BorderLayout布局
add(tfTxt , BorderLayout.SOUTH);
add(taContent , BorderLayout.NORTH);
pack();
//实现窗口关闭功能
this.addWindowListener(new WindowAdapter(){ //匿名类@Override //标记符
//重写windowClosing方法
public void windowClosing(WindowEvent arg0) {
disconnect();
System.exit(0);
}
});
//调用TfListener(),实现输入功能
tfTxt.addActionListener(new TfListener());
setVisible(true);//设置可见性
connect();
}
//功能:从tf输入文字->显示到ta上
//实现方法:使用内部类。因为不需要外部访问。
private class TfListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String str = tfTxt.getText().trim(); //trim()去掉空格
taContent.setText(str);
tfTxt.setText("");
//将文字传输到服务器端
try {
dos.writeUTF(str);
dos.flush();
//dos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
//客户端启动连接到服务器
public void connect(){
try {
s = new Socket("127.0.0.1" , 8888);
dos = new DataOutputStream(s.getOutputStream()); System.out.println("Connected!");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//与服务器断开连接
public void disconnect(){
try {
dos.close();
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ChatServer.java
import java.io.IOException;
import https://www.wendangku.net/doc/9b3172500.html,.*;
import java.io.*;
public class ChatServer {
boolean started = false;
ServerSocket ss = null;
public static void main(String[] args) {
new ChatServer().start();
}
public void start(){
//服务器启动
try {
ss = new ServerSocket(8888);
started = true;
}catch(BindException e){
System.out.println("端口使用中...");
System.out.println("请关闭相应程序并重新运行服务器...");
System.exit(0);
}catch(IOException e){
e.printStackTrace();
}
try{
while(started){
//等待客户端连接
boolean bConnected = false;
Socket s = ss.accept();
Client c = new Client(s);
System.out.println("a client connected!");
new Thread(c).start();
//dis.close();
}
}catch(IOException e){
e.printStackTrace();
}finally{
try{
ss.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
class Client implements Runnable{
private Socket s = null;
private DataInputStream dis = null;
private boolean bConnected = false;
public Client(Socket s){
this.s = s;
try {
dis = new DataInputStream(s.getInputStream());
bConnected = true;
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
try{