电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java Socket實(shí)現(xiàn)簡(jiǎn)易聊天室

瀏覽:106日期:2022-08-15 13:49:58

Java-Socket編程實(shí)現(xiàn)簡(jiǎn)易聊天室(TCP),供大家參考,具體內(nèi)容如下

實(shí)現(xiàn)一個(gè)服務(wù)器接收多個(gè)客戶端

測(cè)試:

首先啟動(dòng)服務(wù)器,然后啟動(dòng)三個(gè)客戶端,輸入三個(gè)不同的用戶名,分別在聊天室發(fā)消息看其他客戶端是否能接收到消息

效果如下圖:

一號(hào)發(fā)消息

Java Socket實(shí)現(xiàn)簡(jiǎn)易聊天室

可以在二號(hào)和三號(hào)客戶端接收到消息

Java Socket實(shí)現(xiàn)簡(jiǎn)易聊天室

Java Socket實(shí)現(xiàn)簡(jiǎn)易聊天室

服務(wù)器設(shè)計(jì)

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.ArrayList;import java.util.List;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class Server1 { static public List<Client> list = new ArrayList<Client>(); static ExecutorService cachedThreadPool = Executors.newCachedThreadPool(); public static void main(String[] args) { //創(chuàng)建一個(gè)ServerSocket監(jiān)聽端口 try (ServerSocket server = new ServerSocket(5678)) { while (true) { // 利用死循環(huán)不停的監(jiān)聽端口 Socket s = server.accept();// 利用Socket服務(wù)器的accept()方法獲取客戶端Socket對(duì)象。 addClient(s); } } catch (IOException e) { e.printStackTrace(); } } // 添加客戶端 private static void addClient(Socket s) { String name; try { BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream())); name = in.readLine(); Client c = new Client(name, s);// 創(chuàng)建客戶端處理線程對(duì)象 System.out.println(name); list.add(c); cachedThreadPool.execute(c); } catch (IOException e) { e.printStackTrace(); } } static class Client implements Runnable { String name; // 客戶端名字 Socket s = null; // 保存客戶端Socket對(duì)象 BufferedReader in; PrintWriter out; Client(String name, Socket s) { this.s = s; this.name = name; try { in = new BufferedReader(new InputStreamReader(s.getInputStream())); out = new PrintWriter(s.getOutputStream()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void run() { try { while (true) { String str = in.readLine(); for (int j = 0; j < list.size(); j++) { Server1.Client c = list.get(j); if (c != this) { System.out.println(str); c.send(str+'-|1|2|-'+name); } } if (str.equals('end')) break; } try { s.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } public void send(String str) throws IOException { out.println(str); out.flush(); } }}

客戶端設(shè)計(jì)

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;import java.util.Scanner;public class Client1 { public static String name = null; static Socket socket = null; static BufferedReader in; static PrintWriter out; public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print('輸入用戶名:>'); name = sc.nextLine(); try {// socket = new Socket('116.62.173.212', 5678); socket = new Socket('127.0.0.1', 5678); System.out.println(socket); System.out.println('已連接服務(wù)器>'); out = new PrintWriter(socket.getOutputStream()); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); Thread receive = new Thread(new receiveThread()); receive.start(); out.println(name); out.flush(); String msg; while (true) {// System.out.print('你說:>'); msg = sc.nextLine(); out.println(msg); out.flush(); if (msg.equalsIgnoreCase('end')) break; } } catch (IOException e) { e.printStackTrace(); } } static class receiveThread implements Runnable{ @Override public void run() { try { while (socket!=null) { String str = in.readLine(); String message = str.split('-|1|2|-')[0]; String name = str.split('-|1|2|-')[1]; System.out.println(name + ':>' + message); } }catch(Exception e) { e.printStackTrace(); } } }}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 飞扬动力官网-广告公司管理软件,广告公司管理系统,喷绘写真条幅制作管理软件,广告公司ERP系统 | 快速门厂家-快速卷帘门-工业快速门-硬质快速门-西朗门业 | 股票入门基础知识_股票知识_股票投资大师_格雷厄姆网 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 集装箱展厅-住人集装箱住宿|建筑|房屋|集装箱售楼处-山东锐嘉科技工程有限公司 | 消泡剂_水处理消泡剂_切削液消泡剂_涂料消泡剂_有机硅消泡剂_广州中万新材料生产厂家 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | 齿式联轴器-弹性联轴器-联轴器厂家-江苏诺兴传动联轴器制造有限公司 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | 沈阳激光机-沈阳喷码机-沈阳光纤激光打标机-沈阳co2激光打标机 | 杭州高温泵_热水泵_高温油泵|昆山奥兰克泵业制造有限公司 | ★济南领跃标识制作公司★济南标识制作,标牌制作,山东标识制作,济南标牌厂 | 北京翻译公司_同传翻译_字幕翻译_合同翻译_英语陪同翻译_影视翻译_翻译盖章-译铭信息 | 合肥通道闸-安徽车牌识别-人脸识别系统厂家-安徽熵控智能技术有限公司 | 层流手术室净化装修-检验科ICU改造施工-华锐净化工程-特殊科室建设厂家 | lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 碳刷_刷握_集电环_恒压簧_电刷厂家-上海丹臻机电科技有限公司 | 药品仓库用除湿机-变电站用防爆空调-油漆房用防爆空调-杭州特奥环保科技有限公司 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 布袋除尘器-单机除尘器-脉冲除尘器-泊头市兴天环保设备有限公司 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 自动气象站_农业气象站_超声波气象站_防爆气象站-山东万象环境科技有限公司 | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 苏州同创电子有限公司 - 四探针测试仪源头厂家| 连栋温室大棚建造厂家-智能玻璃温室-薄膜温室_青州市亿诚农业科技 | 搜活动房网—活动房_集装箱活动房_集成房屋_活动房屋 | 密封圈_泛塞封_格莱圈-[东莞市国昊密封圈科技有限公司]专注密封圈定制生产厂家 | 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 磁力反应釜,高压釜,实验室反应釜,高温高压反应釜-威海自控反应釜有限公司 | 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 硫化罐-电加热蒸汽硫化罐生产厂家-山东鑫泰鑫智能装备有限公司 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 菏泽商标注册_菏泽版权登记_商标申请代理_菏泽商标注册去哪里 | 创绿家招商加盟网-除甲醛加盟-甲醛治理加盟-室内除甲醛加盟-创绿家招商官网 |