计算机网络技术与JAVA网络编程手写Socket聊天室-----JAVA入门基础教程-----计算机网络经典

这篇具有很好参考价值的文章主要介绍了计算机网络技术与JAVA网络编程手写Socket聊天室-----JAVA入门基础教程-----计算机网络经典。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

import java.io.*;
import java.net.Socket;
import java.util.Scanner;

public class ChatClient
{
    public static void main(String[] args)
    {
        try
        {
            Socket socket = new Socket("127.0.0.1",9090);
            new Thread(new Runnable()
            {
                @Override
                public void run()
                {
                    InputStream inputStream = null;
                    while(true)
                    {
                        try
                        {
                            inputStream = socket.getInputStream();
                        }
                        catch (IOException e)
                        {
                            throw new RuntimeException(e);
                        }
                        Scanner out = new Scanner(inputStream);
                        while(out.hasNextLine())
                        {
                            System.out.println(out.nextLine());
                        }
                    }
                }
            }).start();
            new Thread(new Runnable()
            {
                @Override
                public void run()
                {
                    while(true)
                    {
                        Scanner in = new Scanner(System.in);
                        String string = in.nextLine();
                        try
                        {
                            OutputStream outputStream = socket.getOutputStream();
                            outputStream.write(string.getBytes(),0,string.length());
                        }
                        catch (IOException e)
                        {
                            throw new RuntimeException(e);
                        }
                        if("bye".equals(string))
                        {
                            break;
                        }
                    }
                }
            }).start();
        }
        catch (IOException e)
        {
            throw new RuntimeException(e);
        }
    }
}

import java.io.*;
import java.net.Socket;
import java.util.Scanner;

public class ChatClient
{
public static void main(String[] args)
{
try
{
Socket socket = new Socket("127.0.0.1",9090);
new Thread(new Runnable()
{
@Override
public void run()
{
InputStream inputStream = null;
while(true)
{
try
{
inputStream = socket.getInputStream();
}
catch (IOException e)
{
throw new RuntimeException(e);
}
Scanner out = new Scanner(inputStream);
while(out.hasNextLine())
{
System.out.println(out.nextLine());
}
}
}
}).start();
new Thread(new Runnable()
{
@Override
public void run()
{
while(true)
{
Scanner in = new Scanner(System.in);
String string = in.nextLine();
try
{
OutputStream outputStream = socket.getOutputStream();
outputStream.write(string.getBytes(),0,string.length());
}
catch (IOException e)
{
throw new RuntimeException(e);
}
if("bye".equals(string))
{
break;
}
}
}
}).start();
}
catch (IOException e)
{
throw new RuntimeException(e);
}
}
}

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;

public class ChatServer
{
    public static void main(String[] args)
    {
        ArrayList<Socket> arrayList = new ArrayList<Socket>();
        new Thread(new Runnable()
        {
            @Override
            public void run()
            {
                while(true)
                {
                    try
                    {
                        arrayList.add(new ServerSocket(9090).accept());
                    }
                    catch (IOException e)
                    {
                        throw new RuntimeException(e);
                    }
                }
            }
        }).start();
        new Thread(new Runnable()
        {
            @Override
            public void run()
            {
                while(true)
                {
                    if(arrayList.size() != 0)
                    {
                        for(int i = 0; i < arrayList.size(); i++)
                        {
                            String ip = arrayList.get(i).getInetAddress().getHostAddress();
                            try
                            {
                                int len;
                                byte[] bytes = new byte[10240];
                                while((len = arrayList.get(i).getInputStream().read()) != -1)
                                {
                                    arrayList.get(i).getOutputStream().write(bytes,0,len);
                                }
                            }
                            catch (IOException e)
                            {
                                throw new RuntimeException(e);
                            }
                            System.out.println(ip);
                        }
                    }
                    if(arrayList.size() == 0)
                    {
                        System.out.println("No User");
                    }
                }
            }
        }).start();
    }
}

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;

public class ChatServer
{
public static void main(String[] args)
{
ArrayList<Socket> arrayList = new ArrayList<Socket>();
new Thread(new Runnable()
{
@Override
public void run()
{
while(true)
{
try
{
arrayList.add(new ServerSocket(9090).accept());
}
catch (IOException e)
{
throw new RuntimeException(e);
}
}
}
}).start();
new Thread(new Runnable()
{
@Override
public void run()
{
while(true)
{
if(arrayList.size() != 0)
{
for(int i = 0; i < arrayList.size(); i++)
{
String ip = arrayList.get(i).getInetAddress().getHostAddress();
try
{
int len;
byte[] bytes = new byte[10240];
while((len = arrayList.get(i).getInputStream().read()) != -1)
{
arrayList.get(i).getOutputStream().write(bytes,0,len);
}
}
catch (IOException e)
{
throw new RuntimeException(e);
}
System.out.println(ip);
}
}
if(arrayList.size() == 0)
{
System.out.println("No User");
}
}
}
}).start();
}
}文章来源地址https://www.toymoban.com/news/detail-606325.html

到了这里,关于计算机网络技术与JAVA网络编程手写Socket聊天室-----JAVA入门基础教程-----计算机网络经典的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机三级网络技术第三题考点

    数据包分析。     1、DHCP的工作流程如下:           1号报文是release报文,是DHCP客户机发给服务器申请释放IP地址的报文。     DHCP报文具体解析如下:     Boot record type--引导记录类型,值为1表示是客户机发出的报文,值为2表示是服务器发出的报文。     Hardware address  

    2024年02月07日
    浏览(40)
  • 计算机,软件工程,网络工程,大数据专业毕业设计选题有哪些(附源码获取途径)专注于Java技术领域和毕业项目实战

    ✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 大家好!我是你们的毕设周学长,知道你们即将面临毕业设计的任务,所以

    2024年02月08日
    浏览(39)
  • 《计算机系统与网络安全》 第三章 网络攻击预防与技术

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月11日
    浏览(38)
  • 计算机网络安全中应用入侵检测技术

    1 、计算机网络常见入侵方式 针对计算机网络的入侵主要指通过相应计算机程序在物理设施上进行的破坏,又或者编写的程序代码或计算机指令实现对未授权文件或网络的非法访问。继而入侵至网络中的行为。当前常见的计算机网络入侵包括病毒攻击、身份攻击、拒绝服务、

    2024年02月04日
    浏览(45)
  • 第三章 计算机网络技术基础——教案(附PPT)

    第三章 计算机网络技术基础 一、教学目标: 1. 掌握几种常见网络拓扑结构的原理及其特点 2. 掌握ISO/OSI网络参考模型及各层的主要功能 3. 掌握共享介质方式的CSMA/CD和令牌传递两种数据传输控制方式的基本原理 4. 了解几种常见的网络类型 5. 掌握TCP/IP协议的层次结构及各层上

    2024年01月18日
    浏览(41)
  • 神经网络在计算机视觉中的主要技术

    计算机视觉是一种通过计算机程序对图像进行处理和分析的技术。在过去几十年中,计算机视觉技术发展迅速,成为了一种重要的技术手段,应用于各个领域。随着深度学习技术的发展,神经网络在计算机视觉领域的应用也越来越广泛。本文将从以下几个方面进行阐述: 背景

    2024年02月21日
    浏览(38)
  • 《计算机系统与网络安全》 第九章 访问控制技术

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月11日
    浏览(42)
  • 《计算机系统与网络安全》 第十章 防火墙技术

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月11日
    浏览(42)
  • 计算机三级网络技术综合应用题最精干货,值得收藏!

    2,IP校园网 本题涉及的内容有:路由器POS接口配置、loopback接口配置、OSPF动态路由协议配置、静态路由的配置和DHCP服务器配置。 (1)接口的配置参数有接口带宽、接口地址、接口的链路层协议、接口的帧格式、接口的CRC校验和flag (帧头中净负荷类型的标志)back接口主要用于

    2024年04月26日
    浏览(33)
  • 计算机三级网络技术综合题、应用题常见题型答题技巧

    二、综合题 问题1 问题2 问题3 三、应用题 1.计算并填写下表 将IP地址和子网掩码全部转换成二进制:  111.181.21.9:01101111.10110101.00010101.00001001 255.192.0.0 :11111111.11000000.00000000.00000000 由子网掩码可得, 前10位是网络位,后22位是主机位 。 【1】   地址类别:【2023年3月场考题

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包