服务器端

nc之二:nc命令详解

旧巷老猫 提交于 2019-12-20 23:40:18
NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。 一、版本 通常的Linux发行版中都带有NetCat(简称nc),甚至在拯救模式光盘中也由busybox提供了简版的nc工具。但不同的版本,其参数的使用略有差异。 NetCat 官方地址: http://netcat.sourceforge.net/ 引用[root@hatest1 ~]# cat /etc/asianux-release Asianux release 2.0 (Trinity SP2) [root@hatest1 ~]# cat /etc/redflag-release Red Flag DC Server release 5.0 (Trinity SP2) [root@hatest1 ~]# type -a nc nc is /usr/bin/nc [root@hatest1 ~]# rpm -q nc nc-1.10-22 建议在使用前,先用man nc看看帮助。这里以红旗DC Server 5.0上的1.10版本进行简单说明。

socket调试步骤

ε祈祈猫儿з 提交于 2019-12-20 15:37:08
1.Linux环境 2.编译客户端的c文件 gcc -o client client1.c 3.打开另外一个终端,编译服务器端c文件 gcc -o server server1.c 4.执行服务器端 ./server 5.执行客户端 ./client 192.168.1.133 sss ddd 6.服务器端会接收到数据 来源: CSDN 作者: yuminghoson 链接: https://blog.csdn.net/yuminghoson/article/details/103629565

《图解Http》阅读笔记——2.简单的HTTP协议

本小妞迷上赌 提交于 2019-12-20 07:15:04
《图解Http》阅读笔记——2.简单的HTTP协议 2.1 HTTP 协议用于客户端和服务器端之间的通信 HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同,用于客户端和 服务器之间的通信。 请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一 端称为服务器端。 在两台计算机之间使用 HTTP 协议通信时,在一条通信线路上必定有 一端是客户端,另一端则是服务器端。 有时候,按实际情况,两台计算机作为客户端和服务器端的角色有可 能会互换。但就仅从一条通信路线来说,服务器端和客户端的角色是 确定的,而用 HTTP 协议能够明确区分哪端是客户端,哪端是服务器 端。 2.2 通过请求和响应的交换达成通信 HTTP 协议规定,请求从客户端发出,最后服务器端响应该请求并返 回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有 接收到请求之前不会发送响应。 下面,我们来看一个具体的示例。 下面则是从客户端发送给某个 HTTP 服务器端的请求报文中的内容。 GET /index.htm HTTP/1.1 Host: hackr.jp 起始行开头的GET表示请求访问服务器的类型,称为方法 (method)。随后的字符串 /index.htm 指明了请求访问的资源对象, 也叫做请求 URI(request-URI)。最后的 HTTP/1.1,即 HTTP 的版本 号

json数组对象和对象数组

三世轮回 提交于 2019-12-20 03:24:21
一、Json的简单介绍 从结构上看,所有的数据最终都可以分成三种类型: 第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词。 第二种类型是sequence(序列),也就是若干个相关的数据按照一定顺序并列在一起,又叫做array(数组)或List(列表),比如“北京,东京”。 第三种类型是mapping(映射),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作hash(散列)或dictionary(字典),比如“首都:北京”。 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它的规则非常简单并且是 有趣 的: 1) 并列的数据之间用逗号(“,”)分隔。 2) 映射用冒号(“:”)表示。 3) 并列数据的集合(数组)用方括号("[]")表示。 4) 映射的集合(对象)用大括号(“{}”)表示。 按照这个规则可以作以下理解: 1.数组用“[]”创建,对象用“{}”创建,并且使用Json基本都是用[]或者{}创建的数组或对象,否则一个普通的字符串是没有意义的; 2.无论是数组还是对象,之间的元素都用“,”隔开; 3.对象内部,(属性的)名称和值用“:”隔开,并且必须要用“:”隔开,不可单独存在属性名或者值; 4

Java EE会话技术Cookie和Session

蹲街弑〆低调 提交于 2019-12-20 02:45:08
会话技术 一、定义 会话技术是帮助服务器记住客户端状态的(区分客户端的)。将客户访问的信息存在本地的叫Cookie技术,存在服务器上的叫Session技术。 注意: 一次会话何时开始?从打开一个浏览器访问某个站点时开始 一次会话何时结束?到关闭这个浏览器的时候结束。而不是关掉某个站点时 Cookie和Session的区别 Cookie:数据存储在客户端本地,减少服务器端的存储压力,但是安全性不好,客户端可以清除Cookie Session:将数据存储到服务器端,安全性相对较好,但是增加了服务器的压力 二、Cookie技术 学习分为两个方面 服务器端怎样将一个cookie发送到客户端 服务器端如何接收客户端携带的cookie //1创建cookie对象,cookie不能存中文,只能存储非中文字符串 Cookie cookie = new Cookie("name", "zhangsan"); //2以头的形式将cookie中的信息发送到客户端 response.addCookie(cookie); 默认Cookie的级别是会话级别,即关掉浏览器,缓存的东西就被清除。那么如何让cookie持久化呢? 如果访问每一个网页都带着cookie,这会增加响应时间。因此我们应该为cookie指定访问哪些资源时需要携带的路径。 注意:如果不设置携带路径

服务的有状态和无状态

安稳与你 提交于 2019-12-19 23:59:09
对服务器程序来说,究竟是有状态服务,还是无状态服务,其判断依据是—— 两个来自相同发起者的请求在服务器端是否具备上下文关系。 状态化请求 ,服务器端一般都要保存请求的相关信息,每个请求可以默认地使用以前的请求信息。 无状态请求 ,服务器端所能够处理的过程必须全部来自于请求所携带的信息,以及其他服务器端自身所保存的、并且可以被所有请求所使用的公共信息。 总结: 有状态服务可以比较容易地实现事务,在不需要考虑水平扩展时,是比较好的选择 ; 无状态服务的 优势在于可以很方便地水平伸缩 ,但是在实现事务时,需要做一些额外的动作 ,可以通过剥离session等方法,将一个有状态服务,转换成无状态服务 ; 有状态服务和无状态服务各有优劣,它们在一些情况下是可以转换的,或者有时候可以共用,并非一定要全部否定; 在一定需要处理请求上下文的情况下又想使用无状态服务,可以将相关的请求信息存储到共享内存中或者数据库中,参考分布式session的实现方式: 1.基于数据库的Session共享 2.基于NFS共享文件系统 3.基于memcached 的session 4. 基于resin/tomcat web容器本身的session复制机制 5. 基于TT/Redis 或 jbosscache 进行 session 共享 6. 基于cookie 进行session共享 或者在业务实现上

DBUS服务器端程序

有些话、适合烂在心里 提交于 2019-12-19 19:51:22
DBus 服务器端接收方式 DBus 服务器端用来接收signal和method调用。从收集的资料中发现,主要有三种接收方式。 一,采用while循环,监听dbus_connection_read_write()函数。有消息到来时在循环内部进行处理。优点是结构简单,处理方便。程序结构如下图。 /* test.signal.server(bus name) | ----test.signal.Type(interface1) | | | ----FunctionOne(method1) | | | ----FunctionTwo(method2) ----org.freedesktop.DBus.Introspectable(interface3) | | | ----Introspect(method3) response to interface(test.signal.Type) signal(Test) response to interface(test.signal.Type2) signal(TestString) response to interface(test.signal.Type) signal(MulType) */ #include <iostream> #include <stdlib.h> #include <dbus/dbus.h>

SYN手记

放肆的年华 提交于 2019-12-19 01:38:23
原文链接: http://baike.baidu.com/view/488528.htm SYN (synchronize)   SYN是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN-ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。   TCP 连接的第一个包,非常小的一种 数据包 。SYN 攻击包括大量此类的包,由于这些包看上去来自实际不存在的站点,因此无法有效进行处理。每个机器的欺骗包都要花几秒钟进行尝试方可放弃提供正常响应。 在 黑客 攻击事件中,SYN攻击是最常见又最容易被利用的一种攻击手法。   SYN攻击属于 DoS 攻击的一种,它利用 TCP协议 缺陷,通过发送大量的半连接请求,耗费 CPU 和 内存 资源。SYN攻击除了能影响主机外,还可以危害 路由器 、 防火墙 等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。 服务器 接收到连接请求(syn= j),将此信息加入未连接队列,并发送请求包给客户(syn=k,ack=j+1),此时进入 SYN_RECV 状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除

TCP/IP三次握手和HTTP过程

自闭症网瘾萝莉.ら 提交于 2019-12-19 00:24:27
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> TCP/IP三次握手和HTTP过程 1、TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”: 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主 动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客 户端交互,最终确定断开) 2、HTTP连接 HTTP协议即超文本传送协议(Hypertext

C/S和B/S结构区别整理

流过昼夜 提交于 2019-12-18 13:30:57
C/S和B/S结构概念 1.什么是C/S结构 C/S (Client/Server)结构,即客户机和服务器结构。 它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。 C/S结构可以看做是 胖客户端架构 。客户端实现绝大多数的业务逻辑处理和界面展示,作为客户端的部分需要承受很大的压力,从分利用客户端的资源,对客户机的要求较高。 其实现可以是客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。 目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。 传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C