`
Supanccy2013
  • 浏览: 222921 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java socket简单写了一个即时通讯工具(代码有待优化。)

    博客分类:
  • java
阅读更多
1,服务端不断轮训创建socket链接,一旦链接成功,启动两个服务端进程,处理服务端的不断接受、和不断发送。
package com.supan;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
	public static void main(String[] args) throws Exception {
		ServerSocket server=new ServerSocket(4704);
		while(true){
			Socket socket=server.accept();
		    if(socket!=null){
		    	 System.out.println("客户端已经连接,服务器开启线程处理这个连接。");
		    	 new SendThread(socket).start();
		    	 new RecevidThread(socket).start();
		    }	
		}
	}
}

2,发送线程(服务端、客户端的发送)都调用这个
package com.supan;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/*
 * 该类主要用于服务端接受本地系统的输入数据,并且发松到客户端
 */
public class SendThread extends Thread {
	private Socket socket;
	private String line;
	private BufferedReader is;
	private PrintWriter os;
	public SendThread(Socket socket) {
		this.socket = socket;
	}
	public void run() {
		try {
			BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
			os = new PrintWriter(socket.getOutputStream());
			while (true) {
				line = sin.readLine();
				// 把系统输入的数据放入到socket的输出流中
				os.println(line);
				os.flush();
				// 读取socket的输入流并打印出来
			}
		} catch (Exception e) {
			System.out.println("系统输入数据,和客户端输入数据时出现异常");
		}
	}
}


3,接受线程(服务端、客户端的发送)都使用这个
package com.supan;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/*
 * 该类主要负责不停的读取客户端传过来的数据,并打印到控制台
 */
public class RecevidThread extends Thread {
	private Socket socket;
	private String line;
	private BufferedReader is;
	private PrintWriter os;
	public RecevidThread(Socket socket) {
		this.socket = socket;
	}
	public void run() {
		// 获取socket的输入流
		try {
			is = new BufferedReader(new InputStreamReader(
					socket.getInputStream()));
			while (true) {
				System.out.println("客户端传过来的数据是:" + is.readLine());
			}
		} catch (Exception e) {
			System.out.println("系统输入数据,和客户端输入数据时出现异常");
		}
	}
}

4,客户端接受线程
package com.supan;
import java.net.Socket;
public class Client {
	public static void main(String[] args) throws Exception {
		Socket socket=new Socket("localhost",4704);
		if(socket!=null){
			new SendThread(socket).start();
			new RecevidThread(socket).start();
		}
	}
}



5,测试步骤:
  先打开服务端
  再打开客户端
  即可进行即时通讯。

分享到:
评论

相关推荐

    java socket 即时通讯工具

    基于java的即时通讯工具,不局限于局域网

    java socket开发即时通讯服务器

    Java Socket 开发即时通讯服务器是构建实时通信系统的关键技术之一,尤其在企业级应用、在线游戏、聊天室等场景中广泛应用。本篇将深入探讨Java Socket在即时通讯服务器开发中的核心概念、步骤以及关键技术。 首先...

    基于java+mysql+socket的即时通讯软件设计与实现(源码+文档)_mysql_socket_即时通讯软件.zip

    资源名字:基于java+mysql+socket的即时通讯软件设计与实现(源码+文档)_mysql_socket_即时通讯软件.zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 适合场景:...

    JAVA即时通讯+P2P+socket

    本项目利用Java的Socket编程技术,实现了一个简单的类QQ即时通讯程序,旨在提供基本的聊天功能。下面我们将深入探讨相关知识点。 首先,Java Socket编程是Java网络编程的基础,它提供了在网络之间两台计算机进行...

    java Socket即时通讯

    在这个教程中,我们将深入理解Java Socket的基本概念,并通过一个实际的示例来阐述如何在Tomcat服务器上部署和运行一个简单的Socket即时通讯应用。 首先,Socket在Java中的主要类包括`java.net.Socket`(客户端)和...

    java一个简单的即时通讯工具的设计与开发(源代码+论文).zip

    Java即时通讯工具的设计与开发是一项复杂且具有挑战性的任务,涉及到多方面的...以上知识点构成了一个简单的即时通讯工具设计与开发的基本框架,通过源代码的实践和论文的理论学习,可以系统地提升在这一领域的技能。

    java一个简单的即时通讯工具的设计与开发(源代码+WORD论文文档).zip

    java一个简单的即时通讯工具的设计与开发(源代码+WORD论文文档) 个简单的即时通讯工具的设计与开发 摘 要 即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷;...

    c++即时通讯工具代码

    本项目标题为“c++即时通讯工具代码”,这意味着我们要探讨的是使用C++编程语言实现的一个即时通讯系统。C++是一种强大的、面向对象的编程语言,特别适合构建复杂且高效的应用程序,如即时通讯工具。 即时通讯工具...

    java一个简单的即时通讯工具的设计与开发(源代码+论文).rar

    Java即时通讯工具设计与开发是一个涵盖多个技术领域的综合性项目,主要涉及网络编程、多线程、数据序列化、用户界面设计以及并发控制等关键知识点。在这个项目中,开发者需要构建一个能够实现实时消息传递、在线状态...

    javaQQ即时通讯工具

    综上所述,Java QQ 即时通讯工具是一个涵盖多种技术的复杂项目,不仅需要扎实的Java基础,还需要对网络编程、数据库操作、安全机制等有深入理解。开发者在实现这样的工具时,需要充分考虑系统的可扩展性、安全性及...

    java socket 客户端代码

    下面是一个简单的Java Socket客户端示例,用于连接到一个聊天服务器: ```java import java.io.*; import java.net.*; public class ChatClient { public static void main(String[] args) { try (Socket socket...

    基于Java实现一个简单的即时通讯工具的设计与开发毕业设计(源代码+论文)

    【作品名称】:基于Java实现一个简单的即时通讯工具的设计与开发【毕业设计】(源代码+论文) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目...

    毕业论文设计-IT计算机-java一个简单的即时通讯工具的设计与开发(源代码+论文).zip

    这篇毕业论文设计主要聚焦在使用Java语言开发一个简单的即时通讯工具。即时通讯工具,通常简称为IM(Instant Messaging),是互联网应用中常见的通信平台,它允许用户进行实时文本、语音甚至视频聊天。在这个项目中...

    java即时通讯工具的设计与开发(源代码+论文).zip

    Java即时通讯工具的设计与开发是一项复杂且具有挑战性的任务,涉及到网络编程、多线程、数据传输、用户界面设计等多个方面。在这个项目中,开发者利用Java语言的优势,创建了一个能够实现实时信息交换的工具。以下是...

    [计算机毕设]基于java的简单即时通讯工具系统设计与实现(源代码+项目报告).zip

    它有着自己的易用特点与性能优势,比如跨平台、安全性、多线程、网络Socket编程、数据流概念等方面,因此通过对开源即时通讯LinuxQQ的研究和分析,基于Java语言和J2EE规范设计了一个即时通讯工具JICQ (Java for I ...

    java即时通讯工具的设计与实现.doc

    本文通过对开源即时通讯LinuxQQ的研究和分析,基于Java语言和J2EE规范设计了一个即时通讯工具JICQ (Java for I seek you)。 Java语言的优点: 1. 跨平台:Java语言可以在不同的操作系统平台上运行,如Windows、...

    java_chat_program.rar_socket java用户_socket即时通讯

    在这个"java_chat_program.rar"压缩包中,我们有一个基于Java Socket实现的简单即时通讯程序,用户既可以注册登录,也可以以游客身份使用,这为我们提供了一个理解Socket通信机制和实时聊天应用开发的实例。...

Global site tag (gtag.js) - Google Analytics