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

java Socket多线程服务器源代码介绍

阅读更多
java Socket多线程服务器源代码介绍
  

      java Socket多线程在我们进行相关学习的时候需要注意不断出现的问题,下面我们就来看看在java Socket多线程中服务器的代码编写。

      java Socket多线程需要我们不断的学习,在学习的时候我们就会发现在服务器的配置上有不少的问题。下面我们就来看看服务器源代码是如何编写的,以便大家更好的使用java Socket多线程。

         1. import java.io.BufferedReader;  
         2. import java.io.IOException;  
         3. import java.io.InputStreamReader;  
         4. import java.io.PrintWriter;  
         5. import java.net.ServerSocket;  
         6. import java.net.Socket;  
         7. import java.util.ArrayList;  
         8. import java.util.List;  
         9. import java.util.concurrent.ExecutorService;  
        10. import java.util.concurrent.Executors;  
        11. public class ChatServer {  
        12. private static final int PORT = 1234; // 端口号  
        13. private static List<Socket> list = new ArrayList<Socket>();
            // 保存连接对象  
        14. private ExecutorService exec;  
        15. private ServerSocket server;  
        16. public static void main(String[] args) {  
        17. new ChatServer();  
        18. }  
        19. public ChatServer() {  
        20. try {  
        21. server = new ServerSocket(PORT);  
        22. exec = Executors.newCachedThreadPool();  
        23. System.out.println(“服务器已启动!”);  
        24. Socket client = null;  
        25. while (true) {  
        26. client = server.accept(); // 接收客户连接  
        27. list.add(client);  
        28. exec.execute(new ChatTask(client));  
        29. }  
        30. } catch (IOException e) {  
        31. e.printStackTrace();  
        32. }  
        33. }  
        34. static class ChatTask implements Runnable {  
        35. private Socket socket;  
        36. private BufferedReader br;  
        37. private PrintWriter pw;  
        38. private String msg;  
        39. public ChatTask(Socket socket) throws IOException {  
        40. this.socket = socket;  
        41. br = new BufferedReader(new InputStreamReader(socket  
        42. .getInputStream()));  
        43. msg = “【” + this.socket.getInetAddress() + “】
            进入聊天室!当前聊天室有【”  
        44. + list.size() + “】人”;  
        45. sendMessage();  
        46. }  
        47. public void run() {  
        48. try {  
        49. while ((msg = br.readLine()) != null) {  
        50. if (msg.trim().equals(“bye”)) {  
        51. list.remove(socket);  
        52. br.close();  
        53. pw.close();  
        54. msg = “【” + socket.getInetAddress() + “】
            离开聊天室!当前聊天室有【”  
        55. + list.size() + “】人”;  
        56. socket.close();  
        57. sendMessage();  
        58. break;  
        59. } else {  
        60. msg = “【” + socket.getInetAddress() + “】说:” + msg;  
        61. sendMessage();  
        62. }  
        63. }  
        64. } catch (IOException e) {  
        65. e.printStackTrace();  
        66. }  
        67. }  
        68. /**  
        69. * 群发消息给聊天室的所有人  
        70. */  
        71. private void sendMessage() throws IOException {  
        72. System.out.println(msg);  
        73. for (Socket client : list) {  
        74. pw = new PrintWriter(client.getOutputStream(), true);  
        75. pw.println(msg);  
        76. }  
        77. }  
        78. }  
        79. }  
        80. import java.io.BufferedReader;  
        81. import java.io.InputStreamReader;  
        82. import java.io.PrintWriter;  
        83. import java.net.Socket;  
        84. import java.util.concurrent.ExecutorService;  
        85. import java.util.concurrent.Executors;  
        86. public class ChatClient {  
        87. private static final int PORT = 7891;  
        88. private static ExecutorService exec =
            Executors.newCachedThreadPool();  
        89. public static void main(String[] args) throws Exception {  
        90. new ChatClient();  
        91. }  
        92. public ChatClient() {  
        93. try {  
        94. Socket socket = new Socket(“221.130.165.41″, PORT);  
        95. exec.execute(new Sender(socket));  
        96. System.out.println(“【” + socket.getInetAddress() + “】
            您好,欢迎来到简易聊天室!”);  
        97. BufferedReader br = new BufferedReader(new
            InputStreamReader(socket.getInputStream()));  
        98. String msg;  
        99. while ((msg = br.readLine()) != null) {  
       100. System.out.println(“收到—->”+msg);  
       101. }  
       102. } catch (Exception e) {  
       103. }  
       104. } 
分享到:
评论

相关推荐

    java_Socket多线程服务器源代码介绍

    ### Java Socket多线程服务器源代码介绍 #### 一、Java Socket基础知识 在开始之前,我们先了解一下Java Socket的基本概念。Socket是一种用于网络通信的技术,它允许不同计算机上的应用程序通过网络进行通信。Java...

    Java Socket实例(服务器多线程)

    要查看具体的代码实现,你需要检查`src`目录下的文件,通常在`java`或`src/main/java`这样的路径下,找到相关的类文件,比如`ServerSocketThread.java`或其他类似的名字,那里会有实现多线程服务器的代码。

    Java 实例 - Socket 实现多线程服务器程序源代码+详细指导教程.zip

    在Java编程领域,Socket通信是网络编程的基础,用于实现客户端与...通过深入理解和实践这个Java Socket多线程服务器程序,开发者可以提升其在网络编程和并发处理方面的技能,为构建更复杂、高性能的网络应用奠定基础。

    java多线程基于socket的简易聊天室源代码

    在Java编程领域,多线程和Socket通信是两个重要的概念,...总之,这个基于Java的多线程Socket聊天室源代码是学习网络编程和并发处理的好例子,它展示了如何使用Java的基本工具来创建一个基本但功能完整的网络应用程序。

    Java Socket传输图片源代码

    "Java Socket传输图片源代码"这个主题涵盖了以下几个关键知识点: 1. **Java Socket基础**: - Socket是TCP/IP协议族的一部分,用于在网络应用程序之间建立双向通信通道。Java的`java.net.Socket`类和`...

    java基于socket聊天室源代码.rar

    java基于socket聊天室源代码.rar 注:供java socket编程的初学者学习使用,严禁用作作业抄袭和商业用途。若转载源代码,请注明原作者以及作者的博客地址。 项目名称:TCPChatRoomServer(服务器端),...

    java Socket实现的多人聊天 源代码

    这个Java Socket实现的多人聊天源代码实例,对于初学者来说,是一个很好的学习资源,它涵盖了网络编程的基础知识,如TCP连接、多线程以及数据传输。通过分析和理解这个源代码,开发者可以更好地掌握Java网络编程,并...

    TCP-socket.zip_java_java Tcp _java socket _socket_socket多线程

    学习这个示例,我们可以掌握如何在Java中编写TCP Socket程序,包括创建服务器端的`ServerSocket`,接受客户端连接,创建客户端的`Socket`,以及在多线程环境下处理并发连接。此外,还能了解如何使用Java的IO或NIO...

    java源代码,java源代码

    7. **多线程**:Java内置了对多线程的支持,通过`Thread`类或实现`Runnable`接口可以创建并运行线程,实现并发执行。 8. **网络编程**:Java提供了丰富的网络编程API,如Socket和ServerSocket类,用于创建客户端和...

    socket简单示例JAVA源代码

    总结来说,这个“socket简单示例JAVA源代码”可能会包含上述过程的简化版,展示了Java中如何使用Socket进行基本的客户端-服务器通信。它对于理解网络编程的基础概念非常有用,同时也可以作为进一步复杂网络应用开发...

    用java写的多线程聊天程序GUI界面socket实现

    Java编程语言在开发多线程聊天程序中扮演着核心角色,尤其当结合Socket通信和图形用户界面(GUI)时,可以构建出实时、交互式的聊天应用。本项目以"用java写的多线程聊天程序GUI界面socket实现"为主题,旨在展示如何...

    socket做的支持多线程断点上传or断点续传Java源码

    标题中的“socket做的支持多线程断点上传or断点续传Java源码”涉及到的是在网络编程中,如何使用Java的Socket API实现一个能够处理断点上传和断点续传功能的服务。这是一个高级的网络编程任务,通常在大型文件传输...

    客户端服务器,多线程服务器,远程RMI会议

    综上所述,这个上机实验旨在让学生掌握Java中实现客户端-服务器通信、构建多线程服务器以及利用RMI进行远程调用的关键技能。通过实践,学生将能够理解这些核心概念,并能够在实际项目中应用。文件列表中的"客户端...

    Android与PC机 Socket 多线程通信经典案例,移动开发必备代码

    以下是关于Android与PC机Socket多线程通信的关键知识点: 1. **Socket基础**:Socket是网络通信中的一个概念,它代表了两台机器间的一个连接端点,允许数据在网络中传输。在Java中,Socket类和ServerSocket类提供了...

    【Java socket编程】多人聊天室 源代码

    总结来说,Java Socket编程在实现多人聊天室这样的应用场景中,通过创建ServerSocket监听客户端连接,使用Socket进行数据交换,配合多线程技术处理并发通信,以及合理的数据传输格式和错误处理策略,可以构建出稳定...

    Java socket 简单编程 源代码

    下面将详细介绍Java Socket编程的基本概念、使用方法以及源代码分析。 **1. Java Socket基础** Java Socket基于TCP/IP协议,提供了可靠的、面向连接的数据传输服务。Socket连接建立的过程分为三个步骤:(1)...

    socket通信(客户端,服务端源代码)

    在这个场景中,我们有两个文件:`socket_client.java` 和 `socket_server.java`,分别代表客户端和服务端的源代码。接下来,我们将深入探讨Socket通信的基本概念、工作原理以及如何在Java中实现客户端和服务端的代码...

    socket聊天程序java源代码

    ### Socket聊天程序Java源代码解析 #### 一、概述 本篇内容主要解析一个基于Java语言编写的简单Socket聊天程序的源代码。该程序由客户端和服务端两部分组成,通过Socket进行通信,实现基本的文本消息传递功能。...

    基于Java Socket编程的局域网聊天程序源代码

    在这个“基于Java Socket编程的局域网聊天程序源代码”项目中,我们可以学习到如何构建一个简单的聊天应用程序,使得在同一局域网内的用户可以相互通信。以下是关于Java Socket编程的一些核心知识点和在该源代码中...

    java socket通讯程序源码

    源代码通常会包含以下部分: - 客户端代码:创建Socket,打开输入/输出流,发送数据,接收数据,然后关闭连接。 - 服务器端代码:创建ServerSocket,监听连接,对每个连接创建新的线程处理,读取客户端数据并响应,...

Global site tag (gtag.js) - Google Analytics