精华内容
下载资源
问答
  • 第2章扼要讲述以太网基础知识,包括以太网帧结构、共享式以太网、交换式以太网、快速以太网和千兆位以太网体系结构;第3章介绍以太网拓扑结构,包括总线型拓扑结构、星型拓扑结构、扩展型星型拓扑结构和网状拓扑结构...
  • 问题4-4:从什么地方可以查阅到以太网帧格式中“类型”字段是怎样分配? 问题4-5:是什么原因使以太网有一个最小帧长和最大帧长? 问题4-6:在双绞线以太网中,其连接导线只需要两对线:一对线用于发送,另一对...
  • 这次学习内容的主要趣味性,还是在于IP地址划分~下面是精心整理学习笔记,主要写了IP头部有哪些内容...以太网帧Type字段值为0x0800,表示该帧网络层协议为IP协议。 IP报文头部包括以下内容: 版本号Version:

    这次学习内容的主要趣味性,还是在于IP地址的划分~下面是精心整理的学习笔记,主要写了IP头部有哪些内容,和IP编制等内容

    由于IPV4网络层位于数据链路层与传输层之间。网络层中包含了许多协议,还有ICMP协议、IPX协议等。其中最为重要的协议就是IP协议。网络层提供了IP路由功能。理解IP路由除了要熟悉IP协议的工作机制之外,还必须理解IP编址以及如何合理地使用IP地址来设计网络。以太网帧中的Type字段值为0x0800,表示该帧的网络层协议为IP协议。

    IP报文头部包括以下内容:

    版本号Version:4bit,4表示为IPv4;6:表示为IPv6。

    首部长度Header Length:4bit,如果不带Option字段,则为20,最长为60。

    服务类型Type of Service:8bit,只有在有QoS差分服务要求时,这个字段才起作

    用。

    总长度 Total Length:16 bit,整个IP数据包的长度。

    标识Identification:16 bit,,分片重组时会用到该字段。

    标志位Flags:3 bit。

    片偏移 Fragment Offset:12 bit,分片重组时会用到该字段。

    生存时间 Time to Live:8 bit。

    协议 Protocol:8 bit,下一层协议。指出此数据包携带的数据使用何种协议,以便

    目的主机的IP层将数据部分上交给哪个进程处理。

    首部检验和 Header Checksum:16 bit。

    源IP地址Source IP Address:32 bit。

    目的IP地址 Destination IP Address:32 bit。

    选项字段Options:可变。

    填充字段Padding:可变,全填0。
    在这里插入图片描述

    IP编址:

    IPV4地址主要由两部分构成,分为网络部分和主机部分。IP地址由32个二进制位组成,由四个字节组成,采用点分十进制数表示方便阅读和书写。
    在这里插入图片描述
    二进制和十进制的转换如下图,从右往左数分别是2的0次方,1次方,2次方依次类推,地位刚好是2的7次方等于128,而2的6次方等于64,将他们相加就等于192。
    在这里插入图片描述

    分类:

    IPV4地址共分为五大类,具体范围如下图:
    在这里插入图片描述
    在这范围内还划分了公有地址和私有地址,私有地址一般为组织机构内部使用,我们在做局域网实验所配置的IP地址大多使用的是私有IP地址,具体范围如下:

    10.0.0.0~10.255.255.255 172.16.0.0172.31.255.255192.168.0.0192.168.255.255

    除了私有IP地址以外,还有几类比较特殊的IP地址,分别是:

    环回地址:127.0.0.0~127.255.255.255,用于测试设备自身的软件系统任意地址:0.0.0.0,意思就是“任何网络”的IP地址。例如当一个主机接口在启动过程中尚未获得自己的IP地址时,就可以向网络发送目 的IP地址为有限广播地址、源IP地址为0.0.0.0的DHCP请求报文,希望DHCP服务器在 收到自己的请求后,能够给自己分配一个可用的IP地址。 有限广播地址:255.255.255.255,它可以作为一个IP报文的目的IP地址使用。

    由于有类IP地址在设计网络是会造成地址浪费,所以使用可变长子网掩码来减少地址的浪费,将一个大的有类网络,划分成若干个小的子网。

    比如,现有一个C类网络地址段192.168.1.0/24,请使用变长子网掩码给这个子网分配IP地址。默认情况下,有256个IP地址,现在我这只有30个主机需要网络地址,采用2的n次方减2等于30得出2的n次方为5,总共划分成32个IP地址,减去主机位全为0的网络地址和主机位全为1的广播地址还剩30个IP地址,刚好够用。所以,划分后的地址段位192.168.1.0/28。
    在这里插入图片描述
    IPv4迄今为止已经使用了30多年。最早期的时候,互联网只是设计给美国军方用的,根本没有考虑到它会变得如此庞大,成为全球网络。尤其是进入21世纪后,随着计算机和智能手机的迅速普及,互联网开始爆发性发展,越来越多的上网设备出现,越来越多的人开始连接互联网。这就意味着,需要越来越多的IP地址。而IPv4到底一共有多少个IP地址呢?答案是2的32次方,也就是约42.9亿个。而全世界的网民总数已经超过了40亿

    所以说,IPv4地址池接近枯竭,根本无法满足互联网发展的需要。人们迫切需要更高版本的IP协议,更大数量的IP地址池。于是就有了IPV6,采用冒号十六进制法表示,且IPV6地址池数量是2的128次方,这个数量即使是给地球是的每一粒沙子都分配一个IP,也够用了。

    另外精心整理了一些【IP编址技术–实验文档/ 视频讲解/ 思维导图】,来进一步巩固你的基础;
    在这里插入图片描述
    如果大家想入手以上的学习资料,私信 “ 学习 ” 即可免费领取哦!

    展开全文
  • wireshark软件学习

    2019-06-05 21:40:35
    wireshark软件简介 wireshark软件界面主要包括3个部分 数据包列表:软件抓到所有格式数据包。 单个数据包解析:鼠标选中其中一...2.Ethernet II(数据链路层):数据链路层以太网帧头部信息。(包含mac地址)...

    wireshark软件简介

    wireshark软件界面主要包括3个部分

    1. 数据包列表:软件抓到的所有的格式的数据包。
    2. 单个数据包解析:鼠标选中其中一个数据包,软件会自动将数据解析出来。
    3. 单个数据包原始数据:数据包对应的原始数据。

    单个数据包解析的内容有哪些:
    1. Frame(物理层):物理层的数据帧概况。
    2.Ethernet II(数据链路层):数据链路层以太网帧头部信息。(包含mac地址)
    3.Internet Protocol Version 4(网络层):互联网层IP包头部信息。(包含IP地址)
    4.Transmission Control Protocol(传输层):传输层的数据段头部信息,此处是TCP协议(包含端口号)。
    5.Hypertext Transfer Protocol(应用层):应用层的信息,此处是HTTP协议。

    wireshark使用

    设置过滤条件

    https://blog.csdn.net/hyderhan/article/details/78692539

    设置显示过滤条件

    https://blog.csdn.net/qq_27258799/article/details/51379508

    颜色代表的含义

    在这里插入图片描述

    报文格式

    在这里插入图片描述
    在这里插入图片描述
    报文格式参考资料
    https://www.cnblogs.com/yuxijun/p/9980838.html

    展开全文
  • 思科网络技术学院教程CCNA1

    热门讨论 2013-05-28 06:37:53
     本书为思科网络技术学院第1学期配套书面教程,主要内容包括:网络介绍、网络技术基础、网络介质、线缆测试、局域网和广域网布线、以太网基础、以太网技术、以太网交换、tcp/ip协议族和ip寻址、路由基础和子网、...
  • 很强ccna教程

    2013-12-02 15:02:54
    所更新的内容是自己的整个路由表 只将路由表传递给自己的邻居 RIP和IGRP 定期将路由表复制给相邻的路由器并且进行矢量堆加 2、距离矢量路由原理 路由器从收集到的源信息中选择到达目标地址的最佳路径 3、距离...
  • Qt使用udp发送消息

    千次阅读 2014-02-19 13:42:02
     以太网(Ethernet)数据帧的长度必须在46-1500字节之间,这是由以太网的物理特性决定.这个1500字节被称为链路层MTU(最大传输单元).但这并不是指链路层长度被限制在1500字节,其实这个MTU指是链路层数据区.并...

            首先介绍一下,TCP/IP其实是一个四层协议系统,主要包括链路层,网络层,传输层,应用层。udp属于传输层内容。

            以太网(Ethernet)数据帧的长度必须在46-1500字节之间,这是由以太网的物理特性决定的.这个1500字节被称为链路层的MTU(最大传输单元).但这并不是指链路层的长度被限制在1500字节,其实这个MTU指的是链路层的数据区.并不包括链路层的首部和尾部的18个字节.所以,事实上,这个1500字节就是网络层IP数据报的长度限制.因为IP数据报的首部为20字节,所以IP数据报的数据区长度最大为1480字节.而这个1480字节就是用来放TCP传来的TCP报文段或UDP传来的UDP数据报的.又因为UDP数据报的首部8字节,所以UDP数据报的数据区最大长度为1472字节.这个1472字节就是我们可以使用的字节数。:)  当我们发送的UDP数据大于1472的时候会怎样呢?这也就是说IP数据报大于1500字节,大于 MTU.这个时候发送方IP层就需要分片(fragmentation).把数据报分成若干片,使每一片都小于MTU.而接收方IP层则需要进行数据报的重组.这样就会多做许多事情,而更严重的是,由于UDP的特性,当某一片数据传送中丢失时,接收方便无法重组数据报.将导致丢弃整个UDP数据报。因此,在普通的局域网环境下,我建议将UDP的数据控制在1472字节以下为好.进行Internet编程时则不同,因为Internet上的路由器可能会将MTU设为不同的值.如果我们假定MTU为1500来发送数据的,而途经的某个网络的MTU值小于1500字节,那么系统将会使用一系列的机制来调整MTU值,使数据报能够顺利到达目的地,这样就会做许多不必要的操作.鉴于 Internet上的标准MTU值为576字节,所以我建议在进行Internet的UDP编程时.最好将UDP的数据长度控件在548字节 (576-8-20)以内.

           理论上,IP数据报的最大长度是65535字节,这是由IP首部16比特总长度字段所限制的。去除20字节的IP首部和8个字节的UDP首部,UDP数据报中用户数据的最长长度为65507字节。但是,大多数实现所提供的长度比这个最大值小。

            UDP(User Datagram Protocol即用户数据报协议)是一个轻量级的,不可靠的,面向数据报的无连接协议。对于UDP我们不再进行过多介绍,如果你对UDP不是很了解,而且不知道它有什么用,那么我们这里就举个简单的例子:我们现在几乎每个人都使用的腾讯QQ,其聊天时就是使用UDP协议进行消息发送的。就像QQ那样,当有很多用户,发送的大部分都是短消息,要求能及时响应,并且对安全性要求不是很高的情况下使用UDP协议。    在Qt中提供了QUdpSocket 类来进行UDP数据报(datagrams)的发送和接收。这里我们还要了解一个名词Socket,也就是常说的“套接字”。Socket简单地说,就是一个IP地址加一个port端口。因为我们要传输数据,就要知道往哪个机子上传送,而IP地址确定了一台主机,但是这台机子上可能运行着各种各样的网络程序,我们要往哪个程序中发送呢?这时就要用一个端口来指定UDP程序。所以说,Socket明了数据报传输的路径。

    客户端:首先当客户端登录时,获取本机的用户名,计算机名和ip地址,并广播给局域网的服务器更新用户列表。然后当客户端需要发送信息时,则在聊天输入栏中输入信息并按发送键发送聊天内容,当然于此同时也广播本地系统的各种信息。其流程图如下:

       

    服务器端:建立一个UDP Socket并绑定在固定端口后,用信号与槽的方式进行监听是否有数据来临。如果用,接收其数据并分析数据的消息类型,如果消息是新用户登录则更新用户列表并在聊天显示窗口中添加新用户上线通知;同理,如果是用户下线,则在用户列表中删除该用户且在聊天显示窗口中显示下线通知;如果是聊天消息,则接收该消息并且在窗口中显示。其流程图如下:

        

    代码如下:

    mainwindow.h代码如下:

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    
    #include <QMainWindow>
    #include <QtNetwork/QUdpSocket>
    #include <QHostAddress>
    #include <QByteArray>
    #include <QDateTime>
    #include <QString>
    #include <QByteArray>
    #include <QDataStream>
    #include <QIODevice>
    #include <QHostInfo>
    #include <QList>
    #include <QHostAddress>
    #include <QNetworkInterface>
    #include <QAbstractSocket>
    #include <QStringList>
    #include <QProcess>
    #include <QMessageBox>
    #include <QDateTime>
    #include <QTableWidgetItem>
    namespace Ui {
    class MainWindow;
    }
    //分别表示消息,新用户加入,用户退出,文件名称,拒绝接受文件
    enum MessageType{Message, NewParticipant, ParticipantLeft, FileName, Refuse};
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
        QString getIp();//获取ip地址
        QString getUserName();//获得用户名
        QString getMessage();//获得消息
    protected:
        void sendMessage(MessageType type,QString serverAddress="");
        void newParticipant(QString userName,
                               QString localHostName, QString ipAddress);
        void participantLeft(QString userName, QString localHostName, QString time);
    
    
    private:
        Ui::MainWindow *ui;
        QUdpSocket *udpSocket;
        qint16 port;
    private slots:
        void processPendingDatagrams();//接受消息
        void on_pushButton_2_clicked();//当点击发送时,发送消息
    };
    
    
    #endif // MAINWINDOW_H
    
    mainwindow.cpp代码如下:
    

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QDebug>
    
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
    
        udpSocket =new QUdpSocket(this);
        port =45454;
        udpSocket->bind(port,QUdpSocket::ShareAddress|QUdpSocket::ReuseAddressHint);
        connect(udpSocket, SIGNAL(readyRead()), this, SLOT(processPendingDatagrams()));
        sendMessage(NewParticipant);//打开软件时就向外发射本地信息,让其他在线用户得到通知
    }
    
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    void MainWindow::sendMessage(MessageType type, QString serverAddress)
    {
    
    
        QByteArray data;
        QDataStream out(&data,QIODevice::WriteOnly);//将二进制数据存入到io设备
        QString localHostName=QHostInfo::localHostName();//返回主机名
        QString address=getIp();//得到主机的ip地址
        out<< type << getUserName() << localHostName;
        qDebug() << type;
        switch (type)
        {
        case Message:
            if(ui->textEdit->toPlainText()=="")
            {
                QMessageBox::warning(0,tr("infomation"),tr("fasong xinxi buneng weikong"));
            }
            out << address << getMessage();//将ip地址和得到的消息内容输入out数据流
            break;
        case NewParticipant:
            out << address;
            break;
        case ParticipantLeft :
               break;
    
    
           case FileName :
               break;
    
    
           case Refuse :
               break;
        }
        udpSocket->writeDatagram(data,data.length(),QHostAddress::Broadcast, port);//QHostAddress::Broadcast是指发送数据的目的地址
        //使用writeDatagram向外发送信息在整个局域网的所有机器都能够接受到,即局域网广播发送
    
    
    }
    //得到主机的ip地址
    QString MainWindow::getIp()
    {
     /使用allAddresses命令获得所有的ip地址
        QList<QHostAddress> list=QNetworkInterface::allAddresses();
    
    
    
    
        foreach (QHostAddress address,list)
        {
            if(address.protocol()==QAbstractSocket::IPv4Protocol)
                return address.toString();
        }
    
    
        return 0;
    
    
    }
    //得到主机的用户名
    QString MainWindow::getUserName()
    {
        QStringList envVariables;
        envVariables << "USERNAME.*" << "USER.*" << "USERDOMAIN.*"
                        << "HOSTNAME.*" << "DOMAINNAME.*";
        QStringList environment=QProcess::systemEnvironment();
        foreach (QString string, envVariables) {
                //indexOf为返回第一个匹配list的索引,QRegExp类是用规则表达式进行模式匹配的类
                int index = environment.indexOf(QRegExp(string));
                if (index != -1) {
                    //stringList中存的是environment.at(index)中出现'='号前的字符串
                    QStringList stringList = environment.at(index).split('=');
                    if (stringList.size() == 2) {
                        return stringList.at(1);//at(0)为文字"USERNAME.",at(1)为用户名
                        break;
                    }
                }
            }
    
    
    }
    //获得消息
    QString MainWindow::getMessage()
    {
        QString msg=ui->textEdit->toHtml();
        ui->textEdit->clear();//清空内容
        ui->textEdit->setFocus();//重新设置光标输入点
        return msg;
    }
    
    
    //接受udp消息
    void MainWindow::processPendingDatagrams()
    {
        while(udpSocket->hasPendingDatagrams())
        {
           QByteArray datagram;
           datagram.resize(udpSocket->pendingDatagramSize());
           udpSocket->readDatagram(datagram.data(),datagram.size());//接收一个数据报,并将其存储在data中。返回的是数据报的长度
           //将读取到的不大于datagram.size()大小数据输入到datagram.data()中,datagram.data()返回的是一个字节数组中存储
           //数据位置的指针
           QDataStream in(&datagram,QIODevice::ReadOnly);
           int messageType;
           in >> messageType;
           QString userName,localHostName,ipAddress,message;
           QString time = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");//将当前的时间转化到括号中的形式
           switch(messageType)
                  {
                  case Message:
                      //in>>后面如果为Qstring,则表示读取一个直到出现'\0'的字符串
                      in >> userName >> localHostName >> ipAddress >> message;
                      ui->textBrowser->setTextColor(Qt::blue);//设置文本颜色为蓝色
                      ui->textBrowser->setCurrentFont(QFont("Times New Roman",12));//设置字体大小为12号字体
                  //  ui->messageBrowser->append("[ " +userName+" ] "+ time);//输出的格式为用户名加时间显示
                      ui->textBrowser->append("[ " +localHostName+" ] "+ time);
                      ui->textBrowser->append(message);//消息输出
                      break;
    
    
                  case NewParticipant:
                      in >>userName >>localHostName >>ipAddress;
                      newParticipant(userName,localHostName,ipAddress);
                      break;
    
    
                  case ParticipantLeft:
                      in >>userName >>localHostName;
                      participantLeft(userName,localHostName,time);
                      break;
    
    
                  case FileName:
                      break;
    
    
                  case Refuse:
                      break;
                  }
        }
    
    
    
    
    }
    //当点击发送按钮时
    void MainWindow::on_pushButton_2_clicked()
    {
        sendMessage(Message);
    }
    // 处理新用户加入
    void MainWindow::newParticipant(QString userName, QString localHostName, QString ipAddress)
    {
        //此处的findItems表示找到与内容localHostName匹配的item,其匹配是基于变体的匹配模式
        bool isEmpty = ui->tableWidget->findItems(localHostName, Qt::MatchExactly).isEmpty();
        if (isEmpty) {    //没有找到相应的主机名
            //新建3个小的item,分别为user,host,ip
            QTableWidgetItem *user = new QTableWidgetItem(userName);
            QTableWidgetItem *host = new QTableWidgetItem(localHostName);
            QTableWidgetItem *ip = new QTableWidgetItem(ipAddress);
    
    
            ui->tableWidget->insertRow(0);//先设置的是第0行,即新来的用户放在最上面
            ui->tableWidget->setItem(0,0,user);//第0行的第1列...
            ui->tableWidget->setItem(0,1,host);
            ui->tableWidget->setItem(0,2,ip);
            ui->textBrowser->setTextColor(Qt::gray);
            ui->textBrowser->setCurrentFont(QFont("Times New Roman",10));
    
    
            sendMessage(NewParticipant);//该句的功能是让新来的用户也能收到其它在线用户的信息,可拥于更新自己的好友列表
        }
    }
    void MainWindow::participantLeft(QString userName, QString localHostName, QString time)
    {
        int rowNum=ui->tableWidget->findItems(localHostName,Qt::MatchExactly).first()->row();
        ui->tableWidget->removeRow(rowNum);
        ui->textBrowser->setTextColor(Qt::gray);//设置文本颜色为灰色
        ui->textBrowser->setCurrentFont(QFont("Times New Roman", 10));
        ui->textBrowser->append(tr("%1 yu %2 likai").arg(userName).arg(time));
        ui->textBrowser->setText(tr("zaixianrenshu:%1").arg(ui->tableWidget->rowCount()));
    
    
    }
    
    main.cpp代码如下所示:
    

    #include "mainwindow.h"
    #include <QApplication>
    
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
    
    
        w.show();
    
    
        return a.exec();
    }
    
    




    展开全文
  • 问题3-10:从什么地方可以查阅到以太网帧格式中“类型”字段是怎样分配? 问题3-11:是什么原因使以太网有一个最小帧长和最大帧长? 问题3-12:在双绞线以太网中,其连接导线只需要两对线:一对线用于发送,另...
  • 各自都采用高精度时钟用于周期性计数0~24ms,交换机在读取本地时间后发送给端系统,端系统在接收到时间后本地同步,且在下次时间计数到来时,发送本地时间给交换机,交换机将收到时间和本地做对比,只当时间...
  • modbus通信协议

    热门讨论 2010-08-06 15:26:22
    例如功能代码03是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。 (2)回应 如果从...
  • 其中包括网络分析工具内核驱动,编译与使用WinPcap,数据包捕获、发送、内核过滤、接收,以及网络流量统计与网络状态分析等重要内容,而且作者还通过修改内核级源代码解决了开源代码本身尚未完成一个...
  • 对等层之间互相通信需要遵守一定的规则,如通信的内容、通信的方式,我们将其称为协议(Protocol)。我们将某个主机上运行的某种协议的集合称为协议栈。主机正是利用这个协议栈来接收和发送数据的。OSI参考模型通过...
  • 计算机网络复习题

    2014-12-29 19:01:35
    8. 试简述IEEE802.3标准以太网(CSMA/CD)介质访问控制工作原理(包括发送端、接收端及冲突处理原理)。 “多点接入”表示许多计算机以多点接入方式连接在一根总线上。(1分) “载波监听”是指每一个站在...
  • 主要特征: l 完全一至用户接口 l 运行时配置和监控 l 支持多个连接访问 l 用户策略配置 l 活动历史记录,undo/redo操作 l 安全模式操作 l Scripts能事先安排执行时间和执行内容,脚本支持所有命令操作。...
  • java开源包1

    千次下载 热门讨论 2013-06-28 09:14:34
    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
  • java开源包12

    热门讨论 2013-06-28 10:14:45
    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
  • Java资源包01

    2016-08-31 09:16:25
    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
  • java开源包101

    2016-07-13 10:11:08
    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
  • java开源包11

    热门讨论 2013-06-28 10:10:38
    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
  • java开源包2

    热门讨论 2013-06-28 09:17:39
    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
  • java开源包3

    热门讨论 2013-06-28 09:20:52
    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
  • java开源包6

    热门讨论 2013-06-28 09:48:32
    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
  • java开源包5

    热门讨论 2013-06-28 09:38:46
    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
  • java开源包10

    热门讨论 2013-06-28 10:06:40
    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
  • java开源包4

    热门讨论 2013-06-28 09:26:54
    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
  • java开源包8

    热门讨论 2013-06-28 09:55:26
    它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...

空空如也

空空如也

1 2
收藏数 37
精华内容 14
关键字:

以太网帧主要的内容包括