java_一对一自由聊天
客户端
- package cn.qianfeng.kaoti03;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintStream;
- import java.net.Socket;
- class ReceiveSocket implements Runnable {
- private Socket s;
- public ReceiveSocket(Socket s) {
- super();
- this.s = s;
- }
- @Override
- public void run() {
- // TODO Auto-generated method stub
- BufferedReader br = null;
- try {
- while (true) {
- br = new BufferedReader(new InputStreamReader(
- s.getInputStream()));
- String line = br.readLine();
- if (line != null) {
- System.out.println(line);
- }
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } finally {
- if (br != null) {
- try {
- br.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
- }
- class SendSocket implements Runnable {
- private Socket s;
- public SendSocket(Socket s) {
- super();
- this.s = s;
- }
- @Override
- public void run() {
- // TODO Auto-generated method stub
- BufferedReader br = null;
- try {
- while (true) {
- br = new BufferedReader(new InputStreamReader(System.in));
- PrintStream ps = new PrintStream(s.getOutputStream(), true);
- String line = br.readLine();
- ps.println("A:" + line);
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } finally {
- if (br != null) {
- try {
- br.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
- }
- public class TestSocket {
- public static void main(String[] args) {
- try {
- Socket s = new Socket("localhost", 8888);
- new Thread(new SendSocket(s)).start();
- new Thread(new ReceiveSocket(s)).start();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
服务端
- package cn.qianfeng.kaoti03;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
- class SendServerSocket implements Runnable {
- private Socket s;
- public SendServerSocket(Socket s) {
- super();
- this.s = s;
- }
- @Override
- public void run() {
- // TODO Auto-generated method stub
- BufferedReader br = null;
- PrintWriter ps = null;
- try {
- while (true) {
- br = new BufferedReader(new InputStreamReader(System.in));
- ps = new PrintWriter(s.getOutputStream(), true);
- String line = br.readLine();
- if (line != null) {
- ps.println("B:" + line);
- }
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } finally {
- if (br != null) {
- try {
- br.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
- }
- class ReceiveServerSocket implements Runnable {
- private Socket s;
- public ReceiveServerSocket(Socket s) {
- super();
- this.s = s;
- }
- @Override
- public void run() {
- // TODO Auto-generated method stub
- BufferedReader br = null;
- try {
- while (true) {
- br = new BufferedReader(new InputStreamReader(
- s.getInputStream()));
- String line = br.readLine();
- if (line != null) {
- System.out.println(line);
- }
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } finally {
- if (br != null) {
- try {
- br.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
- }
- public class TestServerSocket {
- public static void main(String[] args) {
- try {
- ServerSocket ss = new ServerSocket(8888);
- Socket s = ss.accept();
- System.out.println(s.getInetAddress().getHostName()
- + ".....connected");
- new Thread(new SendServerSocket(s)).start();
- new Thread(new ReceiveServerSocket(s)).start();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
java_一对一自由聊天的更多相关文章
- mvc中signalr实现一对一的聊天
Asp.net MVC中实现即时通讯聊天的功能.前几天刚写了一片基础入门的教程,今天就来实现一下使用signaIr实现一对一的聊天的功能,对于这种场景也是即时通讯最基本功能.好吧废话不多说.先来看一下 ...
- 基于swoole的网页一对一实时聊天
需求分析 网站上实现一对一即时沟通,能查看聊天记录以及离线留言,新消息提醒. 核心技术 html5的websocket,php的swoole扩展http://wiki.swoole.com/ 数据表 ...
- spring boot websocket stomp 实现广播通信和一对一通信聊天
一.前言 玩.net的时候,在asp.net下有一个叫 SignalR 的框架,可以在ASP .NET的Web项目中实现实时通信.刚接触java寻找相关替代品,发现 java 体系中有一套基于stom ...
- 一对一Socket简单聊天的实现
今天终于调试通了Socket一对一的聊天,每次发送连接请求后,将用户名发送到Socket中去,然后将用户名和新建的socket存到map中,然后根据用户名来确定接收方是谁,以实现一对一的聊天功能. 上 ...
- 史上最全面的SignalR系列教程-5、SignalR 实现一对一聊天
1.概述 通过前面几篇文章 史上最全面的SignalR系列教程-1.认识SignalR 史上最全面的SignalR系列教程-2.SignalR 实现推送功能-永久连接类实现方式 史上最全面的Signa ...
- Android 基于Socket的聊天应用(二)
很久没写BLOG了,之前在写Android聊天室的时候答应过要写一个客户(好友)之间的聊天demo,Android 基于Socket的聊天室已经实现了通过Socket广播形式的通信功能. 以下是我写的 ...
- Android 即时语音聊天工具 开发
使用融云SDK 1. 功能需求分析 1.1 核心功能需求: * 即时通讯 * 文字聊天 * 语音聊天 1.2 辅助功能需求: * 注册.登录 * 好友添加功能 * 好友关系管理 2. 融云即时通讯平台 ...
- Java Socket聊天室编程(二)之利用socket实现单聊聊天室
这篇文章主要介绍了Java Socket聊天室编程(二)之利用socket实现单聊聊天室的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在上篇文章Java Socket聊天室编程(一)之 ...
- Redis实现聊天功能
在学习了Redis做为消息队列之后研究 了redis聊天的功能. 其实用关系型数据库也可以实现消息功能,自己就曾经用mysql写过一个简单的消息的功能.RDB中思路如下: ** 在实际中可以完全借助m ...
随机推荐
- C#中的ODBC、OLEDB连接
using System;using System.Collections.Generic;using System.Text;using System.Data.Odbc;using Syste ...
- eclipse代码格式化
今天想要改变Eclipse的代码颜色和背景等等,如果一项一项来,太麻烦了,于是从网上找了个epf文件,但是一开始不知道怎么弄,因为自己是个新手, 对于编译环境不太熟悉,后来找到方法,就是打开Eclip ...
- 【转】Android学习系列(1)--为App签名(为apk签名)
原文网址:http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html 写博客是一种快乐,前提是你有所写,与人分享,是另 ...
- JS中的substring和substr函数的区别
1. 在JS中, 函数声明: stringObject.substring(start,stop) start是在原字符串检索的开始位置,stop是检索的终止位置,返回结果中不包括stop所指字符. ...
- Dim Loop 出现结果不同
(1)结果是:循环1次 Dim counter,num counter = 0 'num = 9 Do Until num = 10 num = num - 1 counter = c ...
- vijosP1543 极值问题
vijosP1543 极值问题 链接:https://vijos.org/p/1543 [题解](网上) 从简单情况人手: 设定m=1,将m代人方程②有(n2-n-1)2=1,可求出n=1: ...
- HW5.19
public class MyTriangle { public static boolean isValid(double side1, double side2, double side3) { ...
- https://lua-toolbox.com/
Lua Toolbox https://github.com/bungle/lua-resty-session
- css3水平翻转
@keyframes cardFront { 0%, 40%, 100% { 02 opacity:1; 03 -webkit-transform:rotateY(0deg); 04 ...
- Xsocket学习
1.xsocket是一个轻量级的基于NIO的服务器框架,用于开发高性能.可扩展.多线程的服务器.该框架封装了线程处理,异步读写等方面的操作. 定义一个借口,继承IDataHandler,IConnec ...