java Socket多线程服务器源代码是怎样的

技术java Socket多线程服务器源代码是怎样的今天就跟大家聊聊有关java Socket多线程服务器源代码是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收

菲兰达菲兰达java套接字你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,你看,哦,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,吴亚玲吴亚玲,是范仲淹还是范仲淹,-你好-你好。

java套接字范仲淹?范仲淹,云娥与云娥同在。你是说,你是说,你是说,你是说,你是说,你是说,你是说,你是说,我是说,你是说,你是说,你是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,云姐云姐云姐java套接字绿筠小姐。

进口,我,缓冲器;

进口。我ioexception .

importjava。io。inputstreamreader:

导入。io。printwriter

importjava.net.ServerSocket:

导入。净。插座:

importjava.util.ArrayList:

importjava.util.List:

导入java.util。并发。表演者服务(导入Java。乌提尔。并发。执行者服务):

导入java.util。并发。表演者(导入Java。乌提尔。并发。执行者):

公共类聊天服务器[

private static cflintpport=1234//唉哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟

私有静态列表=new arraylstylsocket();

//陆恭蕙

privateexecutorserviceexec(专用执行程序服务执行程序):

专用服务器Socketserver:

publicstaticvoidmain(字符串[]参数)和。gt。

newChatServer():

}

pubchatserver()& amp;gt。

尝试[

服务器=新闻服务器套接字(连接埠):

exec=执行者。new cachedtthread pool();

System.out.println("吴惠玲,吴惠玲,吴惠玲,吴惠玲,吴惠玲,吴惠玲,吴惠玲,吴惠玲,吴惠玲,吴惠玲,吴惠玲,吴惠玲,吴惠玲,吴惠玲,吴惠玲,吴惠玲,吴惠玲我的天);

Socketclient=null:

while(true)}

客户端=服务器。accept();//范国强啊!啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

list.add(客户端);

执行董事。执行(newchatask(客户端));

}

} catch(io异常)}

e。print stack trace();

li>

}   

  • }   

  • static class ChatTask implements Runnable {   

  • private Socket socket;   

  • private BufferedReader br;   

  • private PrintWriter pw;   

  • private String msg;   

  • public ChatTask(Socket socket) throws IOException {   

  • this.socket = socket;   

  • br = new BufferedReader(new InputStreamReader(socket   

  • .getInputStream()));   

  • msg = “【” + this.socket.getInetAddress() + “】
    进入聊天室!当前聊天室有【”   

  • + list.size() + “】人”;   

  • sendMessage();   

  • }   

  • public void run() {   

  • try {   

  • while ((msg = br.readLine()) != null) {   

  • if (msg.trim().equals(“bye”)) {   

  • list.remove(socket);   

  • br.close();   

  • pw.close();   

  • msg = “【” + socket.getInetAddress() + “】
    离开聊天室!当前聊天室有【”   

  • + list.size() + “】人”;   

  • socket.close();   

  • sendMessage();   

  • break;   

  • } else {   

  • msg = “【” + socket.getInetAddress() + “】说:” + msg;   

  • sendMessage();   

  • }   

  • }   

  • } catch (IOException e) {   

  • e.printStackTrace();   

  • }   

  • }   

  • /**   

  • * 群发消息给聊天室的所有人   

  • */   

  • private void sendMessage() throws IOException {   

  • System.out.println(msg);   

  • for (Socket client : list) {   

  • pw = new PrintWriter(client.getOutputStream(), true);   

  • pw.println(msg);   

  • }   

  • }   

  • }   

  • }   

  • import java.io.BufferedReader;   

  • import java.io.InputStreamReader;   

  • import java.io.PrintWriter;   

  • import java.net.Socket;   

  • import java.util.concurrent.ExecutorService;   

  • import java.util.concurrent.Executors;   

  • public class ChatClient {   

  • private static final int PORT = 7891;   

  • private static ExecutorService exec = 
    Executors.newCachedThreadPool();   

  • public static void main(String[] args) throws Exception {   

  • new ChatClient();   

  • }   

  • public ChatClient() {   

  • try {   

  • Socket socket = new Socket(“221.130.165.41″, PORT);   

  • exec.execute(new Sender(socket));   

  • System.out.println(“【” + socket.getInetAddress() + “】
    您好,欢迎来到简易聊天室!”);   

  • BufferedReader br = new BufferedReader(new 
    InputStreamReader(socket.getInputStream()));   

  • String msg;   

  • while ((msg = br.readLine()) != null) {   

  • System.out.println(“收到—->”+msg);   

  • }   

  • } catch (Exception e) {   

  • }   

  • }  

  • 看完上述内容,你们对java Socket多线程服务器源代码是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

    内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/108893.html

    (0)

    相关推荐

    • Sharp爬虫程序配置代理ip的示例分析

      技术Sharp爬虫程序配置代理ip的示例分析这期内容当中小编将会给大家带来有关Sharp爬虫程序配置代理ip的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 // 要访问的目

      攻略 2021年10月28日
    • MYSQL如何探索在非互联网企业中的读写分离架构

      技术MYSQL如何探索在非互联网企业中的读写分离架构MYSQL如何探索在非互联网企业中的读写分离架构,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所

      攻略 2021年10月25日
    • XXJ什么意思,数字8322什么意思呀

      技术XXJ什么意思,数字8322什么意思呀很简单XXJ什么意思,只要把这些数字按字母表的顺序转化成英文字母,也就是数字1——26分别代表字母a——z,那么,24.21.5.25.15.21.19.21.15.3.8.5.

      生活 2021年10月26日
    • oracle数据库与mysql区别(数据库oracle 和mysql区别)

      技术数据库oracle与mysql在语法上区别是什么数据库oracle与mysql在语法上区别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所

      攻略 2021年12月21日
    • mybatis-plus判断数据是否存在(springboot mybatisplus使用教程)

      技术spring boot+mybatis-plus怎样使用shardingsphere分库分表spring boot+mybatis-plus怎样使用shardingsphere分库分表,相信很多没有经验的人对此束手无

      攻略 2021年12月20日
    • liunx如何安装nodejs

      技术liunx如何安装nodejs本篇内容主要讲解“liunx如何安装nodejs”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“liunx如何安装nodejs”吧!

      攻略 2021年11月19日