一个基于socket连接的实现一个简单的聊天室。废话不多说,直接上代码:
客户端实现代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class TcpClient {
private Socket socket;
private BufferedReader bufferedReader;
private PrintWriter printWriter;
public TcpClient(String ip,String port) {
try {
this.socket = new Socket(ip,Integer.parseInt(port));//创建socket连接
System.out.println("client:" + socket);
bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
printWriter = new PrintWriter(socket.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
public void sendMsg(String msg) {
//发送消息
printWriter.println(msg);
printWriter.flush();
}
public String reciveMsg() {
//接收消息
try {
return bufferedReader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
服务器端实现代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class TcpServer {
private ServerSocket serverSocket;
private Socket socket;
private BufferedReader bufferedReader;
private PrintWriter printWriter;
public TcpServer(String port) {
try {
this.serverSocket = new ServerSocket(Integer.parseInt(port));//创建服务器端套接字
System.out.println("server" + serverSocket);
socket = serverSocket.accept();//等待客户端连接
System.out.println("server:" + socket);
bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
printWriter = new PrintWriter(socket.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
public void sendMsg(String msg) {
//发送消息
printWriter.println(msg);
printWriter.flush();
}
public String reciveMsg() {
//接收消息
try {
return bufferedReader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public boolean isClose() {
//关闭socket
return socket.isClosed();
}
}
客户端界面及创建客户端对象:
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JTextArea;
public class TCP_Server {
private JFrame frmChatapp;
private JTextField textField;
private JTextField textField_1;
private JTextField textField_2;
private JTextField textField_3;
private JTextField textField_4;
private JTextArea textArea;
private TcpServer tcpServer;
private TcpClient tcpClient;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQu

最低0.47元/天 解锁文章
815

被折叠的 条评论
为什么被折叠?



