java点对点聊天_JAVA通过Swing和socket编程实现简易点对点聊天-Go语言中文社区

一、窗口的制作;因为有了myeclipse所以窗口界面的制作就不需要手工写代码了。下面是我做的效果图:

44cff6537b0dd81ccede201ad7ca7a2e.png

二、界面做出来了,接下来就是写实现功能的代码了。

首先,整理下思路,我们想实现点对点的聊天,功能像QQ那样随意的发信息(这是想实现的功能)。要传输数据就涉及到网络编程。这里我是通过JAVA的socket实现。我们想发送信息,我们就得有发送信息的代码;

我的代码如下:

String host=txtF1.getText();

int port=Integer.parseInt(txtF2.getText());

try {

Socket client=new Socket(host,port);

Writer wt=new OutputStreamWriter(client.getOutputStream());

wt.write(txtare2.getText());

wt.flush();

wt.close();

client.close();

txtare2.setText(null);

} catch (UnknownHostException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

System.out.println("服务器连接失败!");

}

我们还想接收消息,我们就得监听端口将发送过来的信息读取出来然后传给textare控件;我的代码如下:

int port ;

port =Integer.parseInt(txtF.getText());

ServerSocket server;

Socket socket;

String line;

BufferedReader br;

try {

server = new ServerSocket(port);

do{

System.out.println("服务已启动!");

socket = server.accept();

br = new BufferedReader(

new InputStreamReader(socket.getInputStream()));

line = br.readLine();

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java语言游戏项目实战资源包 内容概览: 这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整的代码实现。 项目文档:详细的项目文档,介绍了项目的背景、功能、架构以及实现细节,帮助你更好地理解项目。 操作手册与使用说明:针对每个游戏项目,都准备了详细的操作手册和使用说明,手把手教你如何运行和测试项目。 学习笔记:整理了Java语言在游戏开发中的核心知识点和常用技术,方便你随时查阅和学习。 适用人群: 这份资源包适用于所有对Java游戏开发感兴趣的朋友,无论你是计算机专业的学生,还是希望业余时间尝试游戏开发的爱好者,都可以从中受益。 使用建议: 由浅入深实践:建议先从简单的游戏项目开始,逐步深入,既能增强自信,也能逐步提升技术水平。 结合文档与代码:在实践过程中,结合项目文档和代码,理解每一行代码背后的意义和原理。 持续学习与探索:Java语言和游戏开发技术都在不断更新,建议你在实践中持续学习新的技术和工具,不断提升自己。 Java语言游戏项目实战资源包 内容概览: 这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整的代码实现。 项目文档:详细的项目文档,介绍了项目的背景、功能、架构以及实现细节,帮助你更好地理解项目。 操作手册与使用说明:针对每个游戏项目,都准备了详细的操作手册和使用说明,手把手教你如何运行和测试项目。 学习笔记:整理了Java语言在游戏开发中的核心知识点和常用技术,方便你随时查阅和学习。 适用人群: 这份资源包适用于所有对Java游戏开发感兴趣的朋友,无论你是计算机专业的学生,还是希望业余时间尝试游戏开发的爱好者,都可以从中受益。 使用建议: 由浅入深实践:建议先从简单的游戏项目开始,逐步深入,既能增强自信,也能逐步提升技术水平。 结合文档与代码:在实践过程中,结合项目文档和代码,理解每一行代码背后的意义和原理。 持续学习与探索:Java语言和游戏开发技术都在不断更新,建议你在实践中持续学习新的技术和工具,不断提升自己。 Java语言游戏项目实战资源包 内容概览: 这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整的代码实现。 项目文档:详细的项目文档,介绍了项目的背景、功能、架构以及实现细节,帮助你更好地理解项目。 操作手册与使用说明:针对每个游戏项目,都准备了详细的操作手册和使用说明,手把手教你如何运行和测试项目。 学习笔记:整理了Java语言在游戏开发中的核心知识点和常用技术,方便你随时查阅和学习。 适用人群: 这份资源包适用于所有对Java游戏开发感兴趣的朋友,无论你是计算机专业的学生,还是希望业余时间尝试游戏开发的爱好者,都可以从中受益。 使用建议: 由浅入深实践:建议先从简单的游戏项目开始,逐步深入,既能增强自信,也能逐步提升技术水平。 结合文档与代码:在实践过程中,结合项目文档和代码,理解每一行代码背后的意义和原理。 持续学习与探索:Java语言和游戏开发技术都在不断更新,建议你在实践中持续学习新的技术和工具,不断提升自己。Java语言游戏项目实战资源包 内容概览: 这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目,如猜数字、坦克大战等,每个项目都有完整的代码实现。 项目文档:详细的项目文档,介绍了项目的背景、功能、架构以及实现细节,帮助你更好地理解项目。 操作手册与使用说明:针对每个游戏项目,都准备了详细的操作手册和使用说明,手把手教你如何运行和测试项目。 学习笔记:整理了Java语言在游戏开发中的核心知识点和常用技术,方便你随时查阅和学习。 适用人群: 这份资源包适用于所有对Java游戏开发感兴趣的朋友,无论你是计算机专业的学生,还是希望业余时间尝试游戏开发的爱好者,都可以从中受益。 使用建议: 由浅入深实践:建议先从简单的游戏项目开始,逐步深入,既能增强自信,也能逐步提升技术水平。 结合文档与代码:在实践过程中,结合项目文档和代码,理解每一行代码背后的意义和原理。 持续学习与探索:Java语言和游戏开发技术都在不断更新,建议你在实践中持续学习新的技术和工具,不
好的,以下是用Java实现基于TCP socket的图形化点对点聊天应用的示例代码,包括服务器端和客户端: 1. 服务器端代码: ```java import java.io.*; import java.net.*; import java.util.*; public class Server { private ArrayList<ClientHandler> clients = new ArrayList<ClientHandler>(); private int port; public Server(int port) { this.port = port; } public void start() { try { ServerSocket serverSocket = new ServerSocket(port); System.out.println("Server started..."); while (true) { Socket socket = serverSocket.accept(); System.out.println("New client connected: " + socket); ClientHandler client = new ClientHandler(socket); clients.add(client); client.start(); } } catch (IOException e) { e.printStackTrace(); } } private class ClientHandler extends Thread { private Socket socket; private BufferedReader in; private PrintWriter out; private String name; public ClientHandler(Socket socket) { this.socket = socket; } public void run() { try { in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintWriter(socket.getOutputStream(), true); out.println("Enter your name:"); name = in.readLine(); out.println("Welcome to the chat, " + name + "!"); for (ClientHandler client : clients) { if (client != this) { client.out.println(name + " has joined the chat."); } } while (true) { String message = in.readLine(); if (message == null) { return; } for (ClientHandler client : clients) { if (client != this) { client.out.println(name + ": " + message); } } } } catch (IOException e) { e.printStackTrace(); } finally { clients.remove(this); for (ClientHandler client : clients) { client.out.println(name + " has left the chat."); } try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } public static void main(String[] args) { Server server = new Server(12345); server.start(); } } ``` 2. 客户端代码: ```java import java.io.*; import java.net.*; import javax.swing.*; public class Client { private BufferedReader in; private PrintWriter out; private JFrame frame = new JFrame("ChatClient"); private JTextField textField = new JTextField(40); private JTextArea messageArea = new JTextArea(8, 60); private String name; public Client(String serverAddress, int port) throws Exception { Socket socket = new Socket(serverAddress, port); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintWriter(socket.getOutputStream(), true); while (true) { String line = in.readLine(); if (line.startsWith("Enter your name:")) { name = JOptionPane.showInputDialog(frame, line); out.println(name); } else if (line.startsWith("Welcome to the chat,")) { frame.setTitle("ChatClient - " + name); break; } } textField.addActionListener(e -> { out.println(textField.getText()); textField.setText(""); }); frame.getContentPane().add(textField, "South"); frame.getContentPane().add(new JScrollPane(messageArea), "Center"); frame.pack(); frame.setVisible(true); while (true) { String line = in.readLine(); if (line == null) { break; } messageArea.append(line + "\n"); } } public static void main(String[] args) throws Exception { String serverAddress = JOptionPane.showInputDialog("Enter IP Address of the Server:"); int port = Integer.parseInt(JOptionPane.showInputDialog("Enter Port Number:")); Client client = new Client(serverAddress, port); } } ``` 希望这些代码能够帮助您实现基于TCP socket的图形化点对点聊天应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值