服务器和客户端的简单交互

1 篇文章 0 订阅
订阅专栏

服务器和客户端的简单交互


语言的跨平台


c/c++的跨平台原理

对于不同的操作系统,需要不同的编译,生成不同格式的可执行文件。

img

java的跨平台原理

对于不同的操作系统,只需编译一次。编译后生成的是字节码文件,对于操作系统来说,不是可以执行文件。如果要执行,需要在不同的操作系统上装个软件JVM(java虚拟机),而且需要将这个程序打开。当.java文件经过编译以后生成的.class文件需要执行的时候,是需要启动这个JVM程序,然后使得JVM来加载这个.class文件(将这个文件解析并翻译成机器指令)。

补充:JDK中是带有JRE的(Java Runtime Environment),JRE中包含着JVM。所以下载个JDK就可以运行.class字节码文件了。

img

js的跨平台原理

对于不同的操作系统,不需要编译,只需要在不同的操作系统中打开不同的浏览器,然后浏览器对js文件进行解释,然后使得变成可执行文件(机器指令)。





客户端vs服务器

端口

服务器和客户端本质上都是计算机,只是客户端可能要求更高的显卡等,而服务器要求的是更改的内存。每个服务器会配有多个端口,端口后面会对应着服务器软件,当客户端向服务器的端口发送数据时,由服务器软件监听数据并解析执行代码。如果服务器要将数据传送回客户端,也是通过端口传送。

所以,如果要搭建服务器环境,需要占用一个端口,然后为这个端口搭建服务器软件。

部署项目

客户端可能会向同一个端口中发送多种请求,那么就要求服务器软件创建不同的项目(开发不同的后台,可以使用java代码编写创建),由服务器软件来辨别不同的请求并回应。如果服务器软件压力太大,可以多创建个端口并创建服务器软件,来分担其他的项目。如果服务器的压力太大,那么就再搞一台机器。

所以,如果选用的语言是java,那么就可以在端口上部署服务器软件Tomcat,用来运行开发人员创建的Java代码。又由于Tomcat软件是由java编写,所以如果需要将这个软件跑起来,那么就需要有JVM来加载(如果有客户端发送来的java代码的请求需要执行,需要先启动JVM,然后再启动Tomcat来寻找并执行开发者相应的java代码,最后由Tomcat发送相应来回应客户端)。

img

客户端如何访问服务器软件中的java项目

以访问tomcat中的项目为例:

http://IP地址:端口号/项目

http://10.10.128.49:8080/qq/img

使用http协议,通过IP地址来寻找到服务器,然后再找到端口号,最后在端口号中选择要执行的项目,在项目中再选择要访问的文件夹,后面还可以加 ? 来添加参数

如果做服务器的计算机刚好是当前的机器(客户端是自己,服务器也是自己),那么输入自己的IP即可,或者输入:127.0.0.1,或者localhost。完整:http://localhost:8080/) 后面就可以根据webapps文件夹中的已有项目来测试。

现在在idea中创建的java项目是普通的项目,只能自己自娱自乐,别人是无法通过网页去找到服务器中的这个java项目,所以应该为项目添加web模块(项目右键,选择add framework support,选择web),然后就会出现一个web文件夹,文件夹中就是准备提供给客户端的资源。



测试

在web文件夹下创建了一个html文件和一个图片,这就是准备提供给客户端的资源,但是客户端怎么能够访问呢?需要安装服务器软件Tomcat,需要将这些资源部署到Tomcat中,然后Tomcat利用默认的8080端口去监听客户端发来的资源和请求,然后Tomcat就将资源传送出。

所以下一步应该启动Tomcat,并把项目部署到Tomcat中。在idea中点击add configuration,在其中找到tomcat server(local的),输入地址后,就会自动识别电脑上的tomcat,(这时vs中就已经部署了tomcat,但是tomcat不清楚要管理什么资源),继续点development,选择当前的项目部署到Tomcat中。Tomcat中以后会部署许多的项目,是通过Application context来区分查找的,所以可以将此标识改的精炼些,project1->p1,然后就可以通过/p1来找到相应的资源服务了。

http://IP地址:端口号/资源路径

http://127.0.0.1:8080/p1

使用http协议,通过IP地址找到服务器,通过端口号找到Tomcat,通过资源路径找到资源,现在已经找到了project1项目中的web文件夹,然后再添加/scene.jpg就可以访问到图片了。(首先保证右上角中的tomcat已经打开)

当资源的文件夹等属性改变后,可以按debug,选择rodeplay重新部署。





登录页面

login.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>

<form action="/p1">
    <div>用户名<input name="username"></div>
    <div>密码<input name="password"></div>
    <button type="submit">登录</button>>
</form>

</body>
</html>
http://127.0.0.1:8080/p1/login.html

这里提交的服务器的地址设置的是p1项目,也可以写全部名称,也可以直接/p1(自动的将/p1拼接到8080后面,因为当前的位置就是8080端口下的项目中的网页文件)。将输入的用户名和密码上传到p1中来,但是p1不会有专门的相应,只是会默认的跳转到p1的index.jsp



响应登录页面上传的数据

需要使用servlet技术,需要引用tomcat的库。

因为idea中已经引用了tomcat,所以直接在idea中引用即可。file->project Structure->modules->dependencies->±>library->tomcat库->ok.这样在external library中就可以找到tomcat库。

创建一个LoginServlets类

1,继承HttpServlet,才能处理HTTP请求

2,使用@WebServlet,说明处理的请求路径

http://127.0.0.1:8080/p1/login



LoginServlet

package com.kevin.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/login")
public class LoginServlet extends HttpServlet{
    //处理get请求
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet----");
    }

    //处理post请求
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doPost----");
    }
}

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>

<form action="/p1/login" method="get">
    <div>用户名<input name="username"></div>
    <div>密码<input name="password"></div>
    <button type="submit">登录</button>>
</form>

</body>
</html>

上传的服务器地址是到项目下的login,上传的形式是get

这样在输入后,后台就会打印doGet----,参数和直接显示在网址上。





接收并回应

HttpServletRequest req : 请求:用来获取客户端发来的数据

HttpServletResponse resp:响应:用来给客户端返回数据

LoginServlet

package com.kevin.servlet;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/login")
public class LoginServlet extends HttpServlet{
    //处理get请求
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       doPost(request,response);
    }

    //处理post请求
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        if("123".equals(username)&&"456".equals(password))
        {
            response.getWriter().write("Login Success!!");
        }
        else
        {
            response.getWriter().write("Login Failure!!");
        }
    }
}

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>

<form action="/p1/login" method="post">
    <div>用户名<input name="username"></div>
    <div>密码<input name="password"></div>
    <button type="submit">登录</button>>
</form>

</body>
</html>

用户名123 密码:456

页面显示成功

服务器客户端的文件传输,服务器客户端之间传输文件
weixin_42719781的博客
08-12 1438
服务器客户端之间传输文件 内容精选换一换已成功登录鲲鹏分析扫描工具。只有管理员用户(depadmin)可以执行生成CSR文件、导入web服务器证书、重启和更换工作密钥的操作。普通用户只能查看web服务端证书信息。SSL证书通过在客户端浏览器和web服务器之间建立一条SSL安全通道(访问方式为HTTPS),实现数据信息在客户端和web服务器之间的加密传输,可以防止数据信息的泄露。用于IDE-dae...
基于Linux系统的服务器客户端交互简单发送消息、查看服务器文件)
whitepony135的博客
09-04 637
【代码】基于Linux系统的服务器客户端简单发送消息、查看服务器文件)
Android 客户端服务器交互方式
热门推荐
水煮鱼的博客
04-02 1万+
突然想到一个问题就是Android客户端服务器交互有几种方式,因为在脑袋里想当然的就是webservices和json。要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台、传输数据格式标准、交互方便...。 为了与服务器通讯其实无非就两种协议HTTP和SOCKET,而下面的几种方式就是从这两种协议扩展出来的:webservices soap、SSH的JSON、xmlrp
客户端服务器通讯详解(2):12种常见通讯方式
最新发布
贝格前端工场的博客
07-16 1567
在上一篇文章中,我们分享了客户端服务器通讯的定义、流程、协议,本篇继续分享常见的通讯方式。
封装一个类搞定90%安卓客户端服务器交互
www.v5qq.com的技术博客
07-01 124
本实例封装了一个处理安卓客户端服务器交互的几个方法,对于中文乱码问题本实例也找到了解决方案.本例可以处理的场景如下: 1.与服务器交互json数据. 2.Get方式与服务器交互数据. 3.Post方式与服务器交互数据. 4.HttpClient方式与服务器交互数据. 5.上传文件到服务器端. 6.从服务器端下载文件. 7.从服务器端读取文本文件. 实例截图: 本篇...
客户端服务器交互
weixin_41291538的博客
08-02 670
HTTP介绍 1.HTTP是一种超文本传送协议(HyperText Transfer Protocol),是一套计算机在网络中通信的一种规则。在TCP/IP体系结构中,HTTP属于应用层协议,位于TCP/IP协议的顶层。 2.HTTP是一种无状态的协议,意思是指在Web 浏览器(客户端)和 Web 服务器之间不需要建立持久的连接。整个过程就是当一个客户端服务器端发送一个请求(request),然...
客户端服务器基本概念 客户端服务器交互步骤 客户端服务器交互的两种方式(GET/POST)
kjs--的博客
03-05 2668
客户端介绍 服务器介绍 客户端服务器交互步骤 客户端服务器交互的两种方式(GET/POST)
易语言-远程服务器客户端交互
06-26
创建数据库、与数据表 登陆成功后,在数据库中新建一个数据库,数据库名称为“edata”,编码统一整理为“gb2312_chinese_ci” (简体中文) 然后再创建一个数据表,名称为:“user” (用户表),命名尽量不好用中文 ...
详解Android客户端服务器交互方式
01-05
最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端服务器交互有几种方式,最常见的就是webservices和json。要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台、传输数据格式...
Python编程题服务器客户端交互的的程序
11-08
总的来说,Python的`socket`库为开发者提供了构建网络应用程序的基础,而实际的服务器客户端交互则需要根据具体需求进行设计和优化。对于更复杂的网络编程,可以探索如`asyncio`、`twisted`等高级库,它们提供了...
浅谈Android客户端服务器的数据交互总结
08-25
在Android客户端服务器的数据交互中,通常涉及到网络通信方式、数据传输格式以及API设计规范等多个...开发者需要根据具体业务需求,合理选择通信方式和数据格式,遵循最佳实践来设计和实现客户端服务器之间的交互
socket实现服务器客户端数据的传输
05-17
以socket构建服务器客户端架构,实现c++和unity两客户端通过服务器传输数据
客户端服务器进行交互的三种方式
weixin_30551947的博客
09-03 2596
1、Form方式。Form方式是最基本的向服务器提交数据的方式。 一个小例子:运行效果图为: 看一下前台代码: 在这里,<form></form>之中的代码为一个提交域,当页面提交时,其中的数据也提交到服务器中。 后台代码为(即为服务器中的代码),当页面点击登录按钮登陆后,页面上的数据以表单的形式提交到服务器中,以供服务器进行验证。 2、url形...
服务器客户端信息互相传送
New__Dream的博客
08-20 2081
网络编程 一.Socket和ServerSocket类 1.用来实现双向安全连接网络 2.ServerSocket创建一个服务器Scoket,定义一个端口号,然后用Socket定义一个客户端并定义其链接的IP地址和端口号 3.服务器客户端内容相互传输服务端实现代码: package com.qfedu.test1; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import j
客户端服务器
qiaokelibangwo的博客
06-15 1565
在前端开发中,客户端特指“Web 浏览器”。实际开发中,只要可以访问服务器的一端都属于客户端(手机、平板、电脑中的各种软件都可以是客户端)。概念:服务器是提供服务的设备。 ​ 作用:在上网过程中,服务器专门负责存放资源和对外提供服务。客户端服务器之间的通信过程,分为请求 - 响应两个步骤。其中:请求的概念:客户端通过网络去找服务器要资源的过程,叫做 “请求”响应的概念:服务器把资源通过网络发送给客户端的过程,叫做 “响应”一个完整的url地址分为: 协议、域名(IP地址)、端口、资源存放路径。协议:协议是
客户端服务器端的交互方式
01-17 448
DNS是一个网络服务器 域名解析 www.lmqqtl.com 服务器外网IP地址 服务器端口号 img link script url 没有跨域阻碍 html css js img请求次数 http 80 https 443 ftp 21 URN:统一资源名称 URI:URL+URN统一资源标识符(统一资源信息) URL:统一资源定位符 服务器: 创建一个服务,并且监听一个端...
客户端服务器信息交互的流程,客户端服务器交互流程
weixin_34901508的博客
08-11 1510
客户端服务器交互流程 内容精选换一换ecFlow是一个工作流管理器,使用户可以在受控环境中运行大量程序,彼此之间以及时间上相互依赖。它提供了对硬件和软件故障的容忍度,并具有良好的重启功能。ecFlow作为服务器运行,接收来自客户端的请求。客户端界面包括命令行界面,图形界面,脚本和Python API(应用程序界面)。该服务器基于C ++ / boost ASIO,并使用TC在很多集群架构中,集...
客户端服务器之间的文件传输,客户端服务器的文件传输
weixin_28585773的博客
08-06 1906
客户端服务器的文件传输 内容精选换一换使用FTP上传文件时,写入失败,文件传输失败。该文档适用于Windows系统上的FTP服务。FTP服务端在NAT环境下,客户端需使用被动模式连接服务端。在这种情况下,服务端的IP地址无法从路由器外部访问,所以应该在服务端的对外IP中填写此服务器的公网IP(弹性公网IP),同时设置端口范围来限制需要通过路由器转发的端口数量。弹性公网IP与私华为云帮助中心,为用...
网络通信——客户端服务器交互
betterangela的博客
05-05 1392
网络通信 网络通信 前后端数据交互:同源策略请求ajax & fetch;跨域策略请求:jsonp & cors domain; 客户端:发请求的 服务器端:接收请求的。在电脑上建立服务站点,那么你的电脑就是服务器。 URL地址解析:浏览器解析地址,包含特殊符号的处理 =》 DNS域名解析(解析到哪个服务器),帮你找到你应该连接到哪台服务器 =》 建立tcp连接 =》 连接建立起来之后,HTTP来回传输 =》 URL地址解析 URL和URN是URI的子集
Android开发:json服务器客户端数据交互实战教程
"Android开发使用json实现服务器客户端数据的交互功能示例,通过实例讲解了如何在Android应用中利用json格式数据与服务器进行通信,包括数据库查询等操作。" 在Android开发中,与服务器进行数据交互是必不可少的...
写文章

热门文章

  • [c语言]进值转换的详细代码实现(二进制,十进制,十六进制等) 29686
  • [java] next()和nextLine()的区别和使用,干活满满哦 14126
  • linux如何实现挂载—linux 10207
  • ✨✨[数据结构]——最经典的七大排序(超详细近两万字教程,你值得拥有)✨✨ 5359
  • 数据库——sql-server 3392

分类专栏

  • 笔记 28篇
  • 网络协议 1篇
  • 前端 1篇
  • 数据库 1篇
  • 计算机组成原理 8篇
  • linux 9篇
  • STL 19篇
  • c++ 25篇
  • 小算法题 3篇
  • C 3篇
  • 旧题目重拾 1篇
  • 数据结构 3篇
  • Java 1篇

最新评论

  • vector容器——STL

    vpurple__: 这个vector匿名对象写的好厉害,还有那个swap缩小空间,太厉害了,支持一下

  • [c语言]进值转换的详细代码实现(二进制,十进制,十六进制等)

    a2495043936: 好的,感谢!

  • [c语言]进值转换的详细代码实现(二进制,十进制,十六进制等)

    是小明同学啊: int n=0,只是声明一下n变量 具体的n是你输入的值 这里也可以直接写int n;

  • [c语言]进值转换的详细代码实现(二进制,十进制,十六进制等)

    a2495043936: 你好,为什么在十进制转二进制中,明明已经声明了int n=0,while还能继续运算呢?

  • (二-3)原码,反码,补码和移码【计算机组成原理】

    做而论道_CS: “计算机的数,分为无符号数、有符号数。” 上面这句话,也是一句谎言。 计算机中,只有二进制数,并没有什么“符号”。 二进制数,可以代表:  数字、英文字符、汉字、声音、图像、控制信号、状态信息等。 一个二进制数,到底是什么东西? 取决于程序中的算法。 加上 99,忽略进位,它就是-1; 保留进位,它就真是 99 了! 关键在于:算法! 算法,是计算机的灵魂! 并不是 “原码反码取反加一 ... ” 这些垃圾。

大家在看

  • 抽象类 (自用)
  • 人工智能(AI)助力科研工作
  • 【引流必备】最新版内部闲鱼截流私信评论区留言引流助手,独家不封号日精准引流300+【引流脚本+使用教程】
  • 彻底关闭win11或win10的自动更新 18
  • 基于SpringBoot+Vue的健身房管理系统+万字论文+Mp4演示

最新文章

  • HTML—基础知识
  • 数据库——sql-server
  • 系统总线【计算机组成原理】
2022年64篇
2021年5篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小明同学啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司小型门户网站优化方案北京谷歌优化的网站有哪些宁波网站推广新站快速优化网站优化员的工作职责太原网站如何优化瓷砖行业网站优化推广技巧网站seo优化新规则是什么seo网站优化文章四川网站推广优化政府网站分析与优化电子书济宁口碑好的网站优化平台公司网站排名优化手段阜阳市网站seo优化网站反推优化专业网站优化案例句容企业网站优化价格网站快速优化官方火25星推优化网站软件去联火30星棒海陵区网站优化热线廊坊网站搜索优化公司果洛网站优化临沂网站优化机构排名前十江门照明网站seo优化广安营销型企业网站优化坪地哪里网站优化济南瓷砖行业网站优化推广特点济南瓷砖行业网站优化推广渠道seo优化的好的网站网站seo优化经销商网站seo优化内容香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化