iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么用java socket实现局域网聊天
  • 696
分享到

怎么用java socket实现局域网聊天

2023-06-30 15:06:27 696人浏览 泡泡鱼
摘要

这篇文章主要介绍“怎么用java Socket实现局域网聊天”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用java socket实现局域网聊天”文章能帮助大家解决问题。代码

这篇文章主要介绍“怎么用java Socket实现局域网聊天”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用java socket实现局域网聊天”文章能帮助大家解决问题。

代码很简单分为两个类,一个服务器类,一个客户端,运行时分别启动两个线程一个负责接受另一个负责发送。

整体流程是 两台机器分别启动程序,一个选择主动连接 另一个选择被动接受,即可实现类似qq的聊天效果两个人可以同时发送消息。

注意的事,不要在同一台电脑上同时启动两个,这样会服务端和客户端的ip都是相同很有可能造成自己发送的消息自己接受到了,可以两台电脑或者虚拟机里面进行。

服务端:

package com.server; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket; import com.client.RunClient; public class RunServer {    public static Socket socket=null;        public void startServer() throws IOException {        //服务器接收数据        ServerSocket serverSocekt=new ServerSocket(8888);        System.out.println("服务器启动,等待连接...");        //创建客户端线程        RunClient rc=new RunClient();        Thread rct=new Thread(rc);        rct.start();                        //阻塞线程 监听端口建立socket会话        RunServer.socket=serverSocekt.accept();                        //获取输入留        InputStream is=socket.getInputStream();        //将字节输入流转换成字符输入流        InputStreamReader isr=new InputStreamReader(is);        //将字符输入流装入带缓冲的输入流中        BufferedReader br=new BufferedReader(isr);                String str=null;        while((str=br.readLine())!=null){            System.out.print("输出信息:"+str);        }        socket.shutdownInput();        serverSocekt.close();    }}

客户端:

package com.client; import java.io.BufferedWriter;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.net.Socket;import java.net.UnknownHostException;import java.util.Scanner; import com.server.RunServer; public class RunClient implements Runnable {        @Override    public void run() {        // TODO Auto-generated method stub        Scanner input = new Scanner(System.in);        System.out.println("1、主动连接\n2、被动等待");        String sign=input.next();        switch (sign) {        case "1":            try {                System.out.println("输入服务器IP:");                startClient(input.next());            } catch (Exception e) {                e.printStackTrace();            }            break;        case "2":            try {                startClient();            } catch (Exception e) {                e.printStackTrace();            }            break;                    default:            break;        }    }                public void startClient() throws Exception{                while(true){            try {                if(RunServer.socket!=null){                    break;                }                Thread.sleep(1000);            } catch (InterruptedException e) {                e.printStackTrace();            }        }                        // 与服务器建立连接        Socket socket=new Socket(RunServer.socket.getInetAddress().getHostAddress(), 8888);        System.out.println("连接建立成功...");                //向服务器写入流        OutputStream os=socket.getOutputStream();        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(os));        Scanner input=new Scanner(System.in);                while(true){            System.out.println("输入信息:");            bw.write(input.next());            bw.newLine();            bw.flush();        }    }            public void startClient(String ip) throws Exception{        // 与服务器建立连接        Socket socket=new Socket(ip, 8888);        System.out.println("连接建立成功...");                //向服务器写入流        OutputStream os=socket.getOutputStream();        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(os));        Scanner input=new Scanner(System.in);                while(true){            bw.write(input.next());            bw.newLine();            bw.flush();        }    }}

main:

package com.start; import com.server.RunServer; public class Go {     public static void main(String[] args) throws Exception {        // TODO Auto-generated method stub        RunServer rs=new RunServer();        rs.startServer();    } }

效果:我是用虚拟机加本机

怎么用java socket实现局域网聊天

关于“怎么用java socket实现局域网聊天”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: 怎么用java socket实现局域网聊天

本文链接: https://www.lsjlt.com/news/329764.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用java socket实现局域网聊天
    这篇文章主要介绍“怎么用java socket实现局域网聊天”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用java socket实现局域网聊天”文章能帮助大家解决问题。代码...
    99+
    2023-06-30
  • java socket实现局域网聊天
    使用socket实现局域网聊天,写这个主要是为了深入理解socket与信息流在网络中的传送过程加深理解。 代码很简单分为两个类,一个服务器类,一个客户端,运行时分别启动两个线程一个负...
    99+
    2024-04-02
  • java+socket实现简易局域网聊天室
    本文实例为大家分享了java+socket实现简易局域网聊天室的具体代码,供大家参考,具体内容如下 服务器端 ServerFrame.java package com.eze.cha...
    99+
    2024-04-02
  • Java怎么用局域网实现聊天室功能
    这篇文章主要介绍了Java怎么用局域网实现聊天室功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java怎么用局域网实现聊天室功能文章都会有所收获,下面我们一起来看看吧。类和接口Server类(服务器端)pa...
    99+
    2023-06-30
  • Java用局域网实现聊天室功能
    本文实例为大家分享了Java用局域网实现聊天室的具体代码,供大家参考,具体内容如下 类和接口 Server类(服务器端) package Test; import java.io...
    99+
    2024-04-02
  • Java实现局域网聊天小程序
    本文实例为大家分享了Java实现局域网聊天的具体代码,供大家参考,具体内容如下 开发环境: IDEA 2018.2 集成开发工具。 实现功能: 1、用户上线,向服务器通知并注册。 2...
    99+
    2024-04-02
  • Java实现简单局域网聊天室
    本文实例为大家分享了Java实现简单局域网聊天室的具体代码,供大家参考,具体内容如下 Java 的Socket编程: 1、TCP协议是面向连接的、可靠的、有序的、以字节流的方式发送数...
    99+
    2024-04-02
  • Java实现局域网聊天室功能(私聊、群聊)
    本文实例为大家分享了Java实现局域网聊天室功能的具体代码,供大家参考,具体内容如下 Server 服务端 import java.io.IOException; import ja...
    99+
    2024-04-02
  • Java如何实现局域网聊天小程序
    今天小编给大家分享一下Java如何实现局域网聊天小程序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。开发环境:IDEA 20...
    99+
    2023-06-30
  • Java多线程局域网聊天室的实现
    目录1.TCP2.套接字3.C/S架构4.多线程5.服务器客户端局域网聊天室 在学习了一个学期的java以后,觉得java真是博大精深,彻底放弃了因为c++而轻视java的心态,搞了...
    99+
    2024-04-02
  • Unity实现局域网聊天室功能
    基于Unity实现一个简单的局域网聊天室,供大家参考,具体内容如下 学习Unity有一点时间了,之前学的都是做客户端的一些内容,现在开始学习联网。我的这个是在观看了 Siki 的教学...
    99+
    2024-04-02
  • 怎么用Java创建多线程局域网聊天室
    这篇文章主要讲解了“怎么用Java创建多线程局域网聊天室”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Java创建多线程局域网聊天室”吧!局域网聊天室在学习了一个学期的java以后,觉...
    99+
    2023-06-20
  • Java Socket模拟实现聊天室
    使用Java Socket模拟实现了一个聊天室,实现了基本的私聊以及群聊。分为服务器端和客户端,下面我来介绍一下实现的步骤。 服务器端 服务器端是聊天室的核心所在,主要用来处理客户端...
    99+
    2024-04-02
  • Java Socket实现简易聊天室
    Java-Socket编程实现简易聊天室(TCP),供大家参考,具体内容如下 实现一个服务器接收多个客户端 测试: 首先启动服务器,然后启动三个客户端,输入三个不同的用户名,分别在聊...
    99+
    2024-04-02
  • Java Socket实现聊天室功能
    本文实例为大家分享了Java Socket实现聊天室的具体代码,供大家参考,具体内容如下 1 创建登录判断类UserLogin import java.util.HashSet; i...
    99+
    2024-04-02
  • Java Socket怎样实现简易聊天室
    这篇文章主要介绍了Java Socket怎样实现简易聊天室,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java-Socket编程实现简易聊天室(TCP),具体内容如下实现一...
    99+
    2023-06-14
  • Android Socket怎么实现多个客户端聊天布局
    这篇“Android Socket怎么实现多个客户端聊天布局”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Andr...
    99+
    2023-06-30
  • Python实现局域网(Socket)通
    这学期课很多,加上学校就业办这边事情也不少,所以零散时间琢磨了很多天,开始想用进程的并发实现一个收,一个发,但ide无法实现同时print和input,所以暂时只实现了一个类似对讲机一样的程序,就是A说B听,然后B说A听,如此循环。 先看程...
    99+
    2023-01-31
    局域网 Python Socket
  • Java创建多线程局域网聊天室实例
    局域网聊天室 在学习了一个学期的java以后,觉得java真是博大精深,彻底放弃了因为c++而轻视java的心态,搞了一个多线程的聊天室,熟悉了一下服务器和客户机的操作。 1.TCP...
    99+
    2024-04-02
  • Java Socket实现多人聊天系统
    本文实例为大家分享了Java Socket实现多人聊天系统的具体代码,供大家参考,具体内容如下 前言 GitHub地址 开发环境:Eclipse Java 2019-06 注意:本项...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作