Java多线程聊天对话框
来源:互联网 发布:沪深300指数月度数据 编辑:程序博客网 时间:2024/06/06 05:40
Java实现双人聊天框
Java为了实现同步机制,需要使用多线程技术
在多线程中两种中,本次使用的继承Thread类,当然也可以实现runnable
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class SocketLineDemo { public static void main(String[] args) throws Exception { System.out.println("please select server or client:"); String s0 = new BufferedReader(new InputStreamReader(System.in)).readLine(); if(s0.equals("server")){ System.out.println("input server of port:"); String s2 = new BufferedReader(new InputStreamReader(System.in)).readLine(); int port = Integer.parseInt(s2); System.out.println("monitor:"+port); while(true){ Socket s = new ServerSocket(port).accept(); System.out.println("user "+s.getInetAddress().getHostName()+":successfully connecting"); new FromKeyToNet(s).start(); new FromNetToSreen(s).start(); } }else if(s0.equals("client")){ System.out.println("you must be input IPAddress and port "); System.out.println("eg:192.168.1.1,9999"); String s3 = new BufferedReader(new InputStreamReader(System.in)).readLine(); String a[] = s3.split(","); Socket s = new Socket(a[0],Integer.parseInt(a[1])); System.out.println("Client is successfully connecting to Server"); new FromKeyToNet(s).start(); new FromNetToSreen(s).start(); }else{ System.out.println("you select is error!"); } }}class FromKeyToNet extends Thread{ private Socket s = null; public FromKeyToNet(Socket s) { super(); this.s = s; } public void run(){ try { //增加键盘读取速度 BufferedReader rb = new BufferedReader( new InputStreamReader(System.in)); PrintWriter pw = new PrintWriter(s.getOutputStream()); while(true){//无限的发送 String s1 = rb.readLine(); if(s1.equals("exit")) break; pw.println(s1); pw.flush(); } } catch (Exception e) { } }}class FromNetToSreen extends Thread{ private Socket s = null; public FromNetToSreen(Socket s) { super(); this.s = s; } public void run(){ try { while(true){//无限的读取 BufferedReader br1 = new BufferedReader( new InputStreamReader(s.getInputStream())); String s2 = br1.readLine(); System.out.println(s2); } } catch (Exception e) { } }}
new BufferedReader(new InputStreamReader(
System.in)); 从键盘读取数据,大部分情况更快
0 0
- Java多线程聊天对话框
- java-多线程聊天
- JAVA简单多线程一对一聊天
- java多线程模拟聊天问题
- 【java】多线程小例子-聊天
- Java网络编程:多线程聊天
- 聊天对话框
- 孙鑫vc++利用多线程写一个聊天对话框 学习总结
- Java网络----Socket, 多线程实现内网多人聊天及一对一聊天
- JAVA 多线程实现聊天(UDP通信 )
- java多线程多人聊天的server
- java 多线程,socket 简单模拟聊天软件
- java多线程socket实现简单的聊天
- JAVA 多线程实现简单UDP一对一聊天
- java多线程服务器,实现客户端间聊天
- 多线程聊天
- 多线程聊天
- NGUI之聊天对话框
- 11.【动态规划】Maximum Subarray--Accepted code
- 学习OpenGL的几个较好的网址
- Java中有关Null的9件事
- 处理机调度与死锁总结
- asp.net 关于更改数据库表的方式
- Java多线程聊天对话框
- java 环形数组缓冲区
- LeetCode-Reverse Integer
- Context——Context详解
- VS 2013中添加zlib源文件实现压缩与解压的工程配置过程
- Centos7 安装pyenv及相关包
- String对象的创建
- bzoj 3754 Tree之最小方差树
- ARM寄存器介绍