BS结构的系统通信原理(没有涉及到java小程序)

Posted beiluo1024

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BS结构的系统通信原理(没有涉及到java小程序)相关的知识,希望对你有一定的参考价值。

B/S结构的系统通信原理(没有涉及到java小程序)

  • WEB系统的访问过程
    • 第一步:打开浏览器
    • 第二步:找到地址栏
    • 第三步:输入一个合法的网址
    • 第四步:回车
    • 第五步:在浏览器上会展示相应的结果
  • 关于域名:
  • IP地址是啥?
    • 计算机在网络当中的一个身份证号。在同一个网络当中,IP地址是唯一的。
    • A计算机想要和B计算机通信,首先你需要知道B计算机的IP地址,有了IP地址才能建立连接。
  • 端口号是啥?
    • 一个端口代表一个软件(一个端口代表一个应用,一个端口仅代表一个服务)。
    • 一个计算机当中有很多软件,每一个软件启动之后都有一个端口号。
    • 在同一个计算机上,端口号具有唯一性。
  • 一个WEB系统的通信原理?通信步骤:
    • 第一步:用户输入网址(URL)
    • 第二步:域名解析器进行域名解析:http://39.156.66.14:80/index.html
    • 第三步:浏览器软件在网络中搜索39.156.66.14这一台主机,直到找到为止
    • 第四步:定位39.156.66.14这台主机上的服务器软件,因为是80端口,可以很轻松的定位到80端口对应的服务器软件。
    • 第五步:80端口对应的服务器软件得知浏览器想要的资源名是:index.html
    • 第六步:服务器软件找到index.html文件,并且将index.html文件中的内容直接输出相应到浏览器上。
    • 第七步:浏览器接受来自服务器的代码(HTML CSS JS)
    • 第八步:浏览器渲染,执行HTML,CSS,JS代码,展现效果。
  • 应用服务器和web服务器的关系
    • 应用服务器实现了JavaEE的所有规范。(JavaEE有13个不同的规范)
    • WEB服务器只实现了Java EE中的Servlet+JSP两个核心的规范。
    • 通过这个讲解说明了:应用服务器是包含WEB服务器的

Java UDP通信小程序到UDP服务器

我已经在不同的方法上工作了2个完整的编码日,我需要一些帮助:

我想用java在线创建一个多人游戏。 为此,我需要服务器和applet之间的通信

我的印象是,只要UDP服务器在托管applet的同一台机器上运行,它就可以工作。 (也许我需要纠正)

我在错误控制台(来自applet)上不断收到此错误java.security.AccessControlException:访问被拒绝(java.net.SocketPermission 127.0.0.1:5556 connect,resolve)

当尝试在applet上接收消息时,没有任何反应,没有任何内容被发送,也没有收到任何内容(udp服务器正在发送消息,applet没有收到,我知道udp发送正确,因为我单独测试它与客户端)

这是UDPclient.java applet:

``

import java.io.*;
import java.net.*;
import java.applet.*;
public class UDPClient extends Applet
{
    protected DatagramSocket socket = null;
    protected DatagramPacket packet = null; 
    String ipAddress;
    public void init()
    {
        try{
        System.out.println("got username");
        String username = getParameter("username");
        System.out.println("got ip");
        ipAddress = getParameter("ip"); 
        System.out.println("makingsocket");
        socket = new DatagramSocket();
        System.out.println("sending packet");
        sendPacket();
        System.out.println("receiving packet");
        receivePacket();
        System.out.println("closing socket");
            socket.close();
        }catch(Exception e){e.printStackTrace();}
    }
    public void sendPacket() throws IOException
    {
         byte[] buf ="hihihi".getBytes(); // send hihihi
        InetAddress address = InetAddress.getByName(ipAddress);
        packet = new DatagramPacket(buf, buf.length, address, 5556);
        System.out.println("sending packet");   
     socket.send(packet);
         int port = packet.getPort();

    } 
    public void receivePacket() throws IOException
    {
        byte[] buf = new byte[256];
            packet = new DatagramPacket(buf, buf.length);
        System.out.println("getting packet--- calling socket.receive");
            socket.receive(packet);
        System.out.println("got here, receiving packet");
            String modifiedSentence =new String(packet.getData());
            System.out.println("FROM SERVER:" + modifiedSentence);
    }
}

这是运行applet的HTML文件:

<applet code="UDPClient.class" width="640" height="480">
<param name="username" value="Guest">
<param name="ip" value="localhost">
</applet> 

这是我正在使用的服务器

import java.io.*;
import java.net.*;
public class multiTest
{
    static protected DatagramSocket socket = null;
    static protected DatagramPacket packet = null; 
    public static void main(String [] args) throws IOException
    {
        socket = new DatagramSocket(5556); 
        while(true)
        {
            receivePacket();            
            sendPacket();           


        }
    }
    public static void receivePacket() throws IOException
    {
         //receive message from client
         byte[] buf = new byte[256];
         packet = new DatagramPacket(buf, buf.length);
         socket.receive(packet);

         //translate message in a thread
         String message = new String(packet.getData(), 0, packet.getLength());
         System.out.println("received" + message);
    // should really make thread;
    } 
    public static void sendPacket() throws IOException
    {

        byte[] buf = "ack".getBytes();
         //send the message to the client to the given address and port
          InetAddress address = packet.getAddress();
         int port = packet.getPort();
         packet = new DatagramPacket(buf, buf.length, address, port);
         socket.send(packet);
    } 
}

我一直在尝试按照这里的教程:http://corvstudios.com/tutorials/udpMultiplayer.php来创建此代码。

我真的不想最终使用MINA,Tomcat或安装任何网络框架 - 但如果我必须告诉我,它会节省我很多时间

任何帮助都是先进的!

答案

您的applet使用的JRE需要配置为授权您的applet访问文件系统。 请参阅applet的策略或安全性

以上是关于BS结构的系统通信原理(没有涉及到java小程序)的主要内容,如果未能解决你的问题,请参考以下文章

毕业设计:微信小程序健康管理系统的开发与实现

小程序框架原理之渲染流程及通信流程

从硬件缓存模型到Java内存模型原理浅析

程序员老鸟写sql语句的经验之谈

下载基于RESTSPDY异步IO深入规模化网络信息安全通信优化企业应用系统

程序员老鸟写sql语句的经验之谈