知识大全 加入多线程[2]
Posted 内容
篇首语:只要持续地努力,不懈地奋斗,就没有征服不了的东西。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 加入多线程[2]相关的知识,希望对你有一定的参考价值。
疯狂Java讲义:加入多线程[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
当服务器线程读到客户端数据之后 程序遍历socketList集合 并将该数据向socketList集合中的每个Socket发送一次 该服务器线程将把从Socket中读到的数据向socketList中的每个Socket转发一次 如run()线程执行体中的粗体字代码所示
每个客户端应该包含 条线程 一条负责读取用户的键盘输入 并将用户输入的数据写入Socket对应的输出流中 一条负责读取Socket对应输入流中的数据(从服务器发送过来的数据) 并将这些数据打印输出 其中负责读取用户键盘输入的线程由Myclient负责 也就是由程序的主线程负责 客户端主程序代码如下
程序清单 codes/ / /MultiThread/client/MyClient java
public class MyClient
public static void main(String[] args)throws Exception
Socket s = s = new Socket( )
//客户端启动ClientThread线程不断读取来自服务器的数据
new Thread(new ClientThread(s)) start() //①
//获取该Socket对应的输出流
PrintStream ps = new PrintStream(s getOutputStream())
String line = null;
//不断读取键盘输入
BufferedReader br = new BufferedReader(new InputStreamReader(System in))
while ((line = br readLine()) != null)
//将用户的键盘输入内容写入Socket对应的输出流
ps println(line)
上面程序中获取键盘输入的代码在第 章中已有详细解释 此处不再赘述 当该线程读到用户键盘输入的内容后 将用户键盘输入的内容写入该Socket对应的输出流
除此之外 当主线程使用Socket连接到服务器之后 并启动了ClientThread来处理该线程的Socket通信 如程序中①号代码所示
ClientThread线程负责读取Socket输入流中的内容 并将这些内容在控制台打印出来
程序清单 codes/ / /MultiThread/client/ClientThread java
public class ClientThread implements Runnable
//该线程负责处理的Socket
private Socket s;
//该现成所处理的Socket所对应的输入流
BufferedReader br = null;
public ClientThread(Socket s)
throws IOException
this s = s;
br = new BufferedReader(
new InputStreamReader(s getInputStream()))
public void run()
try
String content = null;
//不断读取Socket输入流中的内容 并将这些内容打印输出
while ((content = br readLine()) != null)
System out println(content)
catch (Exception e)
e printStackTrace()
上面线程的功能也非常简单 它只是不断获取Socket输入流中的内容 当获取Socket输入流中的内容后 直接将这些内容打印在控制台 如上程序中粗体字代码所示
先运行上面程序中的MyServer类 该类运行后只是作为服务器 看不到任何输出 接着可以运行多个MyClient 相当于启动多个聊天室客户端登录该服务器 接着可以看到 我们在任何一个客户端通过键盘输入一些内容后单击 回车 键 将可看到所有客户端(包括自己)都会在控制台收到他刚刚输入的内容 这就粗略实现了一个C/S结构聊天室的功能
返回目录 疯狂Java讲义
编辑推荐
Java程序性能优化 让你的Java程序更快 更稳定
新手学Java 编程
Java程序设计培训视频教程
cha138/Article/program/Java/gj/201311/27784相关参考
超线程多核心下Java多线程编程技术分析[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb
Java多线程编程三步曲[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  
Java开发中多线程同步技巧[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
Java多线程同步设计中使用Metux[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java多线程技术中所有方法的详细解析[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 以上
在Java平台上进行多线程编程的缺陷[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 争用条
Eclipse客户端程序中多线程的使用[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Ec
C#多线程学习—生产者和消费者(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
Java多线程Socket操作猜数游戏样例[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n
Java的多线程-实现多线程及线程的同步 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一.实现