- 浏览: 43590 次
- 性别:
- 来自: 深圳
文章分类
最新评论
import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JRadioButton;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;public class QQ extends JFrame implements ActionListener { public static void main(String args[]) { QQ qq = new QQ(); } String input; ServerSocket ss; Socket s1, s2; PrintWriter pw; BufferedReader br; private server s; private client cc; private JLabel l1, l2, l3, l4, l5, l6; private JRadioButton jb[] = new JRadioButton[2]; private JTextField jf1, jf2, jf3, jf4; private JButton j1, j2, j3; private JTextArea ja; public QQ() { super("聊天"); Container c = getContentPane(); c.setLayout(null); l1 = new JLabel("TCP通信程序"); l1.setFont(new Font("宋体", Font.BOLD, 16)); l1.setBackground(Color.black); l1.setSize(2000, 20); l1.setLocation(10, 10); c.add(l1); String str1[] = { "服务端", "客户端" }; ButtonGroup bg = new ButtonGroup(); for (int x = 0; x < str1.length; x++) { jb[x] = new JRadioButton(str1[x]); jb[x].setFont(new Font("宋体", Font.BOLD, 15)); jb[x].setForeground(Color.black); jb[x].setSize(80, 40); jb[x].setLocation(10 + x * 80, 37); bg.add(jb[x]); c.add(jb[x]); } jb[0].setSelected(true); l2 = new JLabel("连接主机IP"); l2.setFont(new Font("宋体", Font.BOLD, 16)); l2.setBackground(Color.black); l2.setSize(120, 20); l2.setLocation(20, 80); c.add(l2); jf1 = new JTextField("127.0.0.1"); jf1.setSize(220, 30); jf1.setLocation(120, 80); c.add(jf1); jf3 = new JTextField("离线"); jf3.setSize(150, 30); jf3.setLocation(280, 40); c.add(jf3); l5 = new JLabel("连接状态:"); l5.setFont(new Font("宋体", Font.BOLD, 16)); l5.setBackground(Color.black); l5.setSize(120, 20); l5.setLocation(200, 47); c.add(l5); l6 = new JLabel("昵称:"); l6.setFont(new Font("宋体", Font.BOLD, 16)); l6.setBackground(Color.black); l6.setSize(120, 20); l6.setLocation(200, 12); c.add(l6); jf4 = new JTextField("请输入昵称!"); jf4.setSize(150, 30); jf4.setLocation(280, 10); c.add(jf4); j1 = new JButton("连接"); j1.setSize(110, 20); j1.setLocation(360, 85); j1.addActionListener(this); c.add(j1); l3 = new JLabel("接收到的信息"); l3.setFont(new Font("宋体", Font.BOLD, 16)); l3.setBackground(Color.black); l3.setSize(120, 20); l3.setLocation(20, 130); c.add(l3); ja = new JTextArea(); ja.setSize(250, 200); ja.setLineWrap(true); ja.setEditable(false); JScrollPane js = new JScrollPane(ja); js.setBounds(130, 130, 250, 200); c.add(js); l4 = new JLabel("发送信息"); l4.setFont(new Font("宋体", Font.BOLD, 16)); l4.setBackground(Color.black); l4.setSize(120, 20); l4.setLocation(20, 340); c.add(l4); jf2 = new JTextField(""); jf2.setSize(220, 30); jf2.setLocation(120, 340); c.add(jf2); j2 = new JButton("发送信息"); j2.setSize(110, 20); j2.setLocation(360, 350); j2.addActionListener(this); c.add(j2); j3 = new JButton("结束连接"); j3.setSize(110, 20); j3.setLocation(360, 110); j3.addActionListener(this); c.add(j3); s = new server(); cc = new client(); j3.setEnabled(false); j2.setEnabled(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500, 450); setVisible(true); setLocation(300, 300); } public void actionPerformed(ActionEvent e) { // TODO 自动生成方法存根 if (e.getSource() == j1) { try { if (jb[0].isSelected() == true) { input = ""; s.start(); } else { input =""; cc.start(); } } catch (Exception ee) { jf3.setText("发生错误"); } } if (e.getSource() == j2) { ja.append(jf4.getText() + ": " + jf2.getText() + "\n"); pw.write(jf4.getText() + ": " + jf2.getText() + "\n"); jf2.setText(""); pw.flush(); } if (e.getSource() == j3) { try { if (jb[0].isSelected() == true) { s1.close(); jf3.setText("离线"); jf3.setBackground(Color.WHITE); j2.setEnabled(false); j3.setEnabled(false); j1.setEnabled(true); s.stop(); ss.close(); cc.stop(); s2.close(); }else { s2.close(); jf3.setText("离线"); jf3.setBackground(Color.WHITE); j2.setEnabled(false); j3.setEnabled(false); j1.setEnabled(true); s.stop(); ss.close(); cc.stop(); s1.close(); } } catch (Exception e1) { // TODO 自动生成 catch 块 } } } class server extends Thread { public void run() { try { j1.setEnabled(false); jf3.setText("正在连接中@"); ss = new ServerSocket(4000); s1 = ss.accept(); br = new BufferedReader(new InputStreamReader(s1 .getInputStream())); pw = new PrintWriter(s1.getOutputStream(), true); // bs=new BufferedOutputStream(os); while (true) { if (ss.isBound() == true) { jf3.setText("连接成功"); jf3.setBackground(Color.GREEN); j2.setEnabled(true); j3.setEnabled(true); break; } } while (true) { input = br.readLine(); if (input.length() > 0) { ja.append(input); ja.append("\n"); } } } catch (Exception e) { // TODO 自动生成 catch 块 } } } class client extends Thread { public void run() { try { j1.setEnabled(false); jf3.setText("正在连接中@"); s2 = new Socket(InetAddress.getByName(jf1.getText()), 4000); // s2=new Socket(); // s2.connect(new InetSocketAddress(jf1.getText(),21),1000); br = new BufferedReader(new InputStreamReader(s2 .getInputStream())); pw = new PrintWriter(s2.getOutputStream(), true); // bs=new BufferedOutputStream(os); while (true) { if (s2.isConnected() == true) { jf3.setText("连接成功"); jf3.setBackground(Color.GREEN); j2.setEnabled(true); j3.setEnabled(true); break; } } input = ""; while (true) { input = br.readLine(); if (input.length() > 0) { ja.append(input + "\n"); } } } catch (Exception e) { // TODO 自动生成 catch 块 } } }}
发表评论
-
CentOS6.3下安装FastDFS
2012-11-20 17:43 953一、参考文档 FastDFS的介绍、架构、原理: http:/ ... -
jboss配置oracle连接池
2012-08-13 00:36 1005http://www.blogjava.net/zylrand ... -
weblogic 集群 使用JDK1.6时 server启动报错
2012-08-08 23:13 1686常识:一个weblogic可以有多个domain 每 ... -
常用软件下载地址
2012-08-06 14:01 646Oracle http://www.oracle.com/t ... -
好用的软件工具
2012-07-26 12:35 710VNC:局域网内的远程控制软件,用于局域网内多台电脑连接一台电 ... -
Hudson 使用笔记
2012-04-09 15:18 29待续 -
在程序中去创建字体
2012-03-08 16:49 704场景: 在使用jfreechar生成报表时需要该服务器 ... -
ear包中无法通过getRealPath()获得文件的真实路径【转】
2012-03-08 16:36 1889一、war包中的文件的读取 在开发J2EE Web应用时,在 ... -
@override 标记报错
2012-03-08 16:20 717jdk1.5中的@override annotation 只支 ... -
java 文件操作
2011-01-06 15:25 785java中提供了io类库,可以轻松的用java实现对文件的各种 ...
相关推荐
简单的java聊天程序,实现了点对点聊天
Java Socket实现的简单点对点聊天软件是一种基于网络通信的C/S(客户端/服务器)架构的应用。在这个系统中,服务器端作为一个中央节点,接收并转发客户端之间的消息,而客户端则负责用户交互,发送和接收聊天内容。...
总的来说,Java实现的点对点聊天系统是一个综合性的项目,它结合了网络编程、多线程、数据编码解码、音频处理、分布式通信以及用户界面设计等多个技术层面,对开发者的技术要求较高,但同时也提供了丰富的学习和实践...
在这个场景下,我们看到的是一个基于Java实现的简单点对点聊天室项目。该项目由两个主要的Java源文件组成:`Myserversocket.java`和`Mysocket.java`,它们分别代表了服务器端和客户端的角色。 首先,让我们来看看`...
本项目是用Java语言实现的点对点语音实时聊天系统,它允许用户之间进行即时的音频交流。下面将详细探讨该系统可能涉及的关键技术点、设计模式以及实现原理。 1. **Java语音处理库**:实现语音聊天的核心是处理音频...
在这个基于Java的简单点对点聊天系统中,我们将探讨如何构建这样一个基本的聊天应用。 首先,我们看到代码中定义了一个名为`Server`的类,它继承自`JFrame`,这表明我们的服务器端程序是一个具有图形用户界面(GUI...
该程序用DatagramSocket收发数据,实现点对点的消息发送功能。 程序开始运行时弹出设定服务监听端口的消息框,默认的监听端口是11111,然后在主界面中指定对方的IP地址和端口号,创建数据报后即发往指定地址。
在这个“java写的简单聊天程序”中,我们主要关注的是如何使用Java来实现一个基本的多线程聊天应用。下面将详细探讨相关知识点。 首先,我们来看`Server.java`。在服务器端,一般会创建一个监听线程,用于接收...
在这个名为"JAVA简单的点对点聊天软件"的项目中,我们将深入探讨如何使用Java语言实现这样一个功能。该项目涉及的主要知识点包括Java编程基础、Socket编程、多线程以及网络通信协议。 首先,Java编程是实现这个项目...
【JAVA编写的简单聊天软件】是一个使用JAVA编程语言开发的简易通信应用,它允许用户进行...以上就是“JAVA编写的简单聊天软件”中涉及的主要技术点。通过学习和理解这些知识,开发者可以构建出自己的交互式通信系统。
总的来说,这个“ClientUDP.rar”项目提供了一个使用Java UDP实现的点对点聊天程序示例,适合学习和理解如何在Java中运用UDP进行网络通信。通过研究源代码,开发者可以学习到如何设计和实现一个基本的UDP客户端,...
本项目名为“Java简单聊天程序”,旨在提供一个基础的、易于理解的示例,帮助初学者掌握Java网络编程的基本概念和技术。在这个简单的聊天程序中,我们将探讨以下几个关键知识点: 1. **Socket编程**:Java的Socket...
Java 点对点聊天程序是一种基于Java编程语言实现的通信应用,它允许用户在局域网内部进行实时的文本交流。对于初学者来说,这样的项目是理解网络编程、多线程以及用户界面设计等概念的理想实践。下面我们将深入探讨...
在本项目中,“JAVA写的QQ聊天”是一个使用Java编程语言实现的简单聊天应用程序,它能够支持多个人同时进行在线交流。这个程序的核心概念是多线程技术,这使得它可以同时处理多个用户的输入和输出,从而实现多人聊天...
以下是对这个Java聊天室的一些关键知识点的详细说明: 1. **Java Socket编程**:Java聊天室的核心在于Socket编程,它是Java提供的用于网络通信的基础类库。Socket允许两台计算机通过网络连接交换数据。在聊天室中,...
ChatOneToOne是一个针对Java编程初学者设计的局域网点对点聊天软件项目。这个软件允许在同一局域网内的两个用户之间进行实时通信,提供了一种简单而有效的沟通方式。源代码的提供使得学习者能够深入理解Java编程在...
总之,"Java聊天程序 简单源码.rar" 包含了Java网络编程、多线程、GUI设计、数据传输等多个核心知识点,对于学习和理解Java应用程序的开发具有很高的参考价值。通过分析和研究这个源代码,开发者可以深化对Java编程...
在本项目中,"Java 套接字(Socket)实现的简单局域网点对点聊天工具"是一个基于Java的本地网络通信应用,允许用户通过输入IP地址直接进行聊天。这个工具监听4700端口,这是应用程序之间建立连接并交换数据的特定通道...
标题中的"java写的聊天简单版本"指的是一款基于Java编程语言开发的初级阶段的聊天应用程序。Java作为一种广泛使用的面向对象的编程语言,因其跨平台性、丰富的类库以及强大的社区支持,常被用于开发各种类型的应用...
【标题】:“用Java编写的简单聊天程序” 在IT领域,Java是一种广泛使用的面向对象的编程语言,以其“一次编写,到处运行”的特性而闻名。本项目是一个基于Java实现的简单聊天程序,它展示了如何利用Java进行网络...