`
yangzhizhen
  • 浏览: 75720 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

简易客户端--服务器聊天程序

    博客分类:
  • Java
阅读更多
  • 功能:简单的客户端和服务器互发信息。

  • 服务器端:
    import javax.swing.*;
    import java.net.*;
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.*;
    //服务器端
    public class MyServer extends JFrame implements ActionListener{
    	JTextArea jta = null;
    	JScrollPane jsp = null;
    	JTextField jtf = null;
    	JButton jb = null;
    	JPanel jp = null;
    	//把信息发送给客户端的信息
    	PrintWriter pw = null;
    	//主方法
    	public static void main(String[] args) {
    		MyServer ms = new MyServer();
    	}
    	//构造器
    	public MyServer(){
    		this.setTitle("简易聊天--服务器端");
    		this.setLocation(500, 100);
    		this.setResizable(false);
    		jta = new JTextArea();
    		jsp = new JScrollPane(jta);
    		jtf = new JTextField(10);
    		jb = new JButton("发送");
    		jb.addActionListener(this);
    		jp = new JPanel();
    		jp.add(jtf);
    		jp.add(jb);
    		this.add(jsp,BorderLayout.CENTER);
    		this.add(jp,BorderLayout.SOUTH);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setSize(300, 200);
    		this.setVisible(true);
    		try {
    			//服务器监听
    			ServerSocket ss = new ServerSocket(9999);
    			//等待客户端连接
    			Socket s = ss.accept();
    			InputStreamReader isr = new InputStreamReader(s.getInputStream());
    			BufferedReader br = new BufferedReader(isr);
    			pw = new PrintWriter(s.getOutputStream(),true);
    			//读取从客户端发来的信息
    			while(true){
    				//读取从客户端发来的信息
    				String info = br.readLine();
    				jta.append("客户端对服务器说:"+info+"\r\n");
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		
    	}
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		//如果用户按下发送信息按钮
    		if(e.getSource()==jb){
    			//把服务器在jtf写的内容发送给客户端
    			String info = jtf.getText();
    			jta.append("服务器对客户端说:"+info+"\r\n");
    			pw.println(info);
    			//清空发送框内容
    			jtf.setText("");
    		}
    	}
    }

  • 客户端:
    import javax.swing.*;
    import java.net.*;
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.*;
    //客户机端
    public class MyClient extends JFrame implements ActionListener{
    	JTextArea jta = null;
    	JScrollPane jsp = null;
    	JTextField jtf = null;
    	JButton jb = null;
    	JPanel jp = null;
    	PrintWriter pw = null;
    	//主方法
    	public static void main(String[] args) {
    		MyClient ms = new MyClient();
    	}
    	//构造器
    	public MyClient(){
    		this.setTitle("简易聊天--客户机端");
    		this.setResizable(false);
    		this.setLocation(100, 100);
    		jta = new JTextArea();
    		jsp = new JScrollPane(jta);
    		jtf = new JTextField(10);
    		jb = new JButton("发送");
    		jb.addActionListener(this);
    		jp = new JPanel();
    		jp.add(jtf);
    		jp.add(jb);
    		this.add(jsp,BorderLayout.CENTER);
    		this.add(jp,BorderLayout.SOUTH);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setSize(300, 200);
    		this.setVisible(true);
    		try {
    			Socket s = new Socket("127.0.0.1",9999);
    			InputStreamReader isr = new InputStreamReader(s.getInputStream());
    			BufferedReader br = new BufferedReader(isr);
    			pw = new PrintWriter(s.getOutputStream(),true);
    			while(true){
    				//不停地读取从服务器端发来的信息
    				String info = br.readLine();
    				jta.append("服务器对客户端说:"+info+"\r\n");
    			}
    		} catch (UnknownHostException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		if(e.getSource()==jb){
    			String info = jtf.getText();
    			//把客户端发送的信息显示在jfa
    			jta.append("客户端对服务器说:"+info+"\r\n");
    			pw.println(info);
    			jtf.setText("");
    		}
    	}
    }
     

分享到:
评论

相关推荐

    简易聊天程序(含客户端、服务器源码)

    本项目“简易聊天程序”提供了一套包括客户端和服务器源码的实现,旨在帮助开发者理解TCP/IP协议栈的工作原理,并实践如何通过编程实现简单的即时文本交流。 首先,TCP/IP协议栈是互联网通信的基础,它由四层组成:...

    简易聊天程序代码--QQ程序哦

    这个项目是一个基于C#开发的简易聊天程序,它模仿了QQ的基本功能,提供了客户端和服务器端的通信。在深入理解这个项目之前,我们首先需要了解C#编程语言以及网络通信的基础知识。 C#是微软开发的一种面向对象的编程...

    QuickChat:非常简单的客户端-服务器聊天程序

    QuickChat 是一个基于 Java 开发的简易客户端-服务器聊天程序,它允许用户通过网络进行实时通信。这个项目展示了如何在 Java 中实现基本的网络通信功能,对于初学者来说,是学习网络编程和多线程技术的一个很好的...

    java多人聊天室(服务器端和客户端)

    在聊天室中,服务器端需要监听客户端的连接,并通过`InputStream`读取客户端发送的信息,然后将信息广播给其他在线的客户端;客户端则通过`OutputStream`将用户输入的信息发送给服务器。 项目结构通常包括以下部分...

    Python 聊天室 程序 客户端 服务端

    在Python编程领域,创建聊天室程序是学习网络通信和多线程等概念的良好实践。本项目包含客户端(Client.py)和服务端(Server.py),适用于初学者掌握基础的网络编程技能。我们将深入探讨这两个核心文件以及相关知识...

    包括客户端和服务端的简易聊天工具

    标题中的“包括客户端和服务端的简易聊天工具”指的是一个基于网络通信的聊天应用程序,它由两部分组成:客户端(Client)和服务器端(Server)。这样的系统允许用户通过互联网进行实时交流,类似于早期的MSN...

    p2p-仿QQ简易聊天程序

    P2P技术为构建去中心化的网络应用提供了强大支持,通过它实现的仿QQ简易聊天程序,不仅简化了通信流程,减少了对中心服务器的依赖,还展示了P2P在即时通讯领域的潜力。通过TCP/IP协议和多线程技术的结合,程序能够...

    Socket通信 简易聊天通信程序 服务端 多客户端

    在这个简易聊天通信程序中,服务端和多客户端的交互是通过Socket来完成的。让我们深入了解一下这个主题。 首先,Socket通信的基础是TCP/IP协议,它允许两台计算机(或者一个服务器和多个客户端)在互联网上建立连接...

    计算机网络课程设计终结版---qq简易聊天程序报告

    在本篇计算机网络课程设计报告中,学生们使用Java编程语言实现了简易QQ聊天程序,涵盖了群聊和私聊功能。这份报告详细记录了整个设计过程,包括选题、分析、分工、设计、开发环境、数据库设计、文件夹组织结构、公共...

    简易微信客户端和服务器源码.7z

    在本资源中,我们拥有一个名为"简易微信客户端和服务器源码.7z"的压缩包,其中包含了一个简易版的微信客户端与服务器的源代码。这个项目对于学习微信通信协议、网络编程以及客户端-服务器架构的基础知识非常有帮助。...

    安卓XMPP聊天通讯Socket相关-简易微信客户端和服务器源码.rar

    【标题】"安卓XMPP聊天通讯Socket相关-简易微信客户端和服务器源码"涉及的核心技术是XMPP(Extensible Messaging and Presence Protocol)协议,这是一种基于XML的即时通讯协议,广泛应用于移动聊天应用,如Android...

    C++简易聊天程序C++简易聊天程序

    这个C++简易聊天程序的源代码("聊天室")可能会包含服务器端和客户端两部分。服务器端负责监听连接,接收并广播消息,而客户端则负责连接服务器,发送用户输入,并显示接收到的消息。通过分析和学习这个程序,初学...

    Java课设--模拟QQ聊天小程序.zip

    在本项目"Java课设--模拟QQ聊天小程序.zip"中,我们主要探讨的是如何使用Java编程语言实现一个基于TCP协议的简易版QQ聊天程序。这个程序遵循了客户端/服务器(C/S)架构,并且利用了多线程技术,使得它可以支持多人...

    Java简易聊天程序

    在聊天程序中,服务器和客户端之间通过套接字(Socket)进行通信,使用`BufferedReader`和`PrintWriter`等流类进行数据的读取和发送,确保数据在网络中的准确传输。 4. **用户界面设计**:尽管这是一个“简易”聊天...

    基于Linux消息队列的简易聊天室(C语言)(附源代码)

    采用客户-服务器结构,其中服务器实现各个用户的登录并存储相关信息,客户端通过服务器端获取当前登录用户信息,然后各客户进程通过消息队列实现双向通信。 Linux IPC通信利用消息队列消息机制,多线程通信,字符串...

    用Python套接字实现服务器和客户端的一对多通信(简易的聊天程序)

    在本文中,我们将深入探讨如何使用Python的套接字库实现一个简单的聊天程序,该程序支持服务器与多个客户端之间的通信。这个系统的核心是利用套接字进行网络通信,并结合多线程来处理并发连接。 首先,我们要理解套...

    简易聊天服务器 程序

    该简易聊天服务器程序通过C#语言实现了基本的网络聊天功能,包括客户端连接管理、消息广播与接收,以及简单的事件驱动机制。它不仅适合初学者了解网络编程的基本原理,还提供了丰富的代码示例,有助于深入理解委托、...

    基于socket编程的客户端和服务器端程序

    在本聊天程序中,UDP客户端和服务器端通过发送和接收数据报来实现消息传递,虽然可能会丢失数据,但能提供更快的响应速度。 3. **Socket编程的基本步骤**: - **服务器端**:创建ServerSocket,指定监听的端口号,...

    Java开发的简易聊天程序

    本资源“Java开发的简易聊天程序”提供了一系列用Java实现的简单聊天程序示例,适合初学者和有一定经验的开发者进行学习和参考。 首先,让我们探讨Java语言的基础。Java是一种面向对象的语言,它具有“一次编写,...

    c#简易聊天室(服务器端+客户端)

    在本文中,我们将深入探讨如何使用C#编程语言构建一个简易聊天室,涵盖服务器端和客户端的实现。这个聊天室项目实现了即时通讯的基本功能,包括登录、退出、发送系统消息、公共通讯以及私密对话。我们将围绕以下几个...

Global site tag (gtag.js) - Google Analytics