客户端服务器

C# Socket 通信

柔情痞子 提交于 2020-01-20 13:38:13
服务端 Service.cs using System ; using System . Collections . Generic ; using System . Net ; using System . Net . Sockets ; using System . Text ; using System . Threading ; using System . Windows . Forms ; namespace csharpService { public partial class Service : Form { public Service ( ) { InitializeComponent ( ) ; ///多线程编程中,如果子线程需要使用主线程中创建的对象和控件,最好在主线程中体现进行检查取消 /// CheckForIllegalCrossThreadCalls = false ; /// 获取本地IP textBox_current_address . Text = IPAddress . Any . ToString ( ) ; } /// 创建一个字典,用来存储记录服务器与客户端之间的连接(线程问题) /// private Dictionary < string , Socket > clientList = new Dictionary <

NFS存储服务

流过昼夜 提交于 2020-01-20 08:52:08
一、NFS 原理图 二、NFS 原理描述   2.1:什么是NFS     NFS中文名字:网络共享存储,就是通过网络共享目录,让网络上的其他服务器能够挂载访问共享目录的数据(NFS一般都是用来存放视频、附件、图片等静态数据的).      NFS是通过网络来进行服务端和客户端数据传输的,那么只要是通过网络的就一定会有端口,那NFS的端口是什么呢?很失望的是NFS的端口是随机的,每次重启服务端口都会改变.     那么客户端是怎样知道服务端的端口的呢?其实NFS服务器是通过远程过程调用(RPC)协议/服务来实现的,也就是说RPC服务会统一管理NFS的端口,客户端和服务端通过RPC来确定端口,进行数据传输.     PS:(哦,原来是RPC管理服务端的NFS端口分配,客户端要传数据,那客户端的RPC会先跟服务端的RPC去要服务器的端口,要到端口后再建立连接,然后传输数据)。   2.2:什么是RPC     RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。      RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了 传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。     RPC采用客户机

NFS和DHCP服务

偶尔善良 提交于 2020-01-20 06:45:11
部署NFS服务器实现linux与linux 之间的文件共享 服务器端配置: 第一步:下载nfs和rpcbind [root@ken test]# yum install nfs-utils rpcbind -y 第二步:配置nfs的文件 [root@ken ~]# vim /etc/exports /test 192.168.64.5/24(rw) /ken 172.20.10.7(rw) #给特定的ip共享,rw表示权限 /data *(rw) #给所有ip 共享 /data 172.20.10.0/28(rw) #把网段共享出去 28表示掩码 /data 172.20.10.0/28(rw) 192.168.64.0/24(rw) #设置多个网络 注意: * 表示对所有网段开放权限 nfs也可以共享多个目录 /ken 192.168.64.5(rw) /test 192.168.64.7(rw) 第三步:重启nfs和rpcbind [root@ken ~]# systemctl restart rpcbind nfs 第四步:客户端挂载使用 如果不下载nf会报如下的错误: [root@ken ~]# mount -t nfs 192.168.64.4:/test /test mount: wrong fs type, bad option, bad superblock on

网络编程

房东的猫 提交于 2020-01-20 04:58:49
网络编程 1. 软件开发的架构 C/S架构 B/S架构 2. socket编程 2.1 socket通信流程 2.2 基于TCP协议的socket 2.3 基于UDP协议的socket 2.4 实例(初恋的故事) 2.5 实例(模拟qq聊天室) 3. 黏包现象 3.1 黏包成因 3.2 会发生黏包的两种情况 3.3 黏包的解决方案 4. socket的更多方法介绍 5. 验证客户端链接的合法性 6. socketserver 1. 软件开发的架构 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用 这些应用的本质其实都是两个程序之间的通讯。而这两个分类又对应了两个软件开发的架构: C/S架构 C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。 B/S架构 B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。 Browser浏览器,其实也是一种Client客户端

Linux NTP网络时间协议及配置

断了今生、忘了曾经 提交于 2020-01-20 00:58:28
NTP简介 由RFC1305定义的时间同步协议 在分布式时间服务器和客户端之间进行时间同步 基于UDP报文传输 端口号为123 采用分层的方法来定义时钟的准确度 支持访问控制和MD5加密验证 可以采用单播、组播或广播方式发送协议报文 时钟层的概念 层数决定了时钟的准确度 其取值范围为0-15 准确度从0-15依次递减 一般层数为0的 时钟处于子网特殊位置 参考原子钟 NTP工作原理 NTP主要通过交换时间服务器和客户端的时间戳 计算出客户端相对于服务器的时延和 偏差 从而实现时间的同步 NTP工作模式 服务器/客户端模式 对等体模式 并没有明确的表明谁是服务器谁是客户端 广播模式 大范围的 组播模式 一个小范围的 NTP应用建议 尽量在本地局域网部署SNTP服务器 Internet上公用的SNTP服务器时延有不确定性 会 对授时精度产生影响 客户端授权时请求要大于1min 以免SNTP服务器负担过重 无法及时响应 高可靠性系统中 最好配置多台SNTP服务器 利用DNS实现负载均衡 客户端应能够识别服务器故障 一旦发现故障 应丢弃时间戳 转向其他服务器请求授时 查询Internet NTP服务器 https://www.ntppool.org /etc/ntp.conf配置文件 driftfile参数 解决NTP服务器校准时间时的传送延迟 driftfile /var/lib/ntp

网络--TIME_WAIT状态

无人久伴 提交于 2020-01-19 12:36:31
MSL时间   MSL就是maximum segment lifetime(最大分节生命期),这是一个IP数据包能在互联网上生存的最长时间,超过这个时间IP数据包将在网络中消失 。MSL在RFC 1122上建议是2分钟,而源自berkeley的TCP实现传统上使用30秒。 TIME_WAIT状态维持时间   TIME_WAIT状态维持时间是两个MSL时间长度,也就是在1-4分钟。Windows操作系统就是4分钟。 用于统计当前各种状态的连接的数量的命令 --------------------------- #netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 返回结果如下: LAST_ACK 14 SYN_RECV 348 ESTABLISHED 70 FIN_WAIT1 229 FIN_WAIT2 30 CLOSING 33 TIME_WAIT 18122 对上述结果的解释: CLOSED:无连接是活动的或正在进行 LISTEN:服务器在等待进入呼叫 SYN_RECV:一个连接请求已经到达,等待确认 SYN_SENT:应用已经开始,打开一个连接 ESTABLISHED:正常数据传输状态 FIN_WAIT1:应用说它已经完成 FIN_WAIT2:另一边已同意释放 ITMED_WAIT

TCP连接的建立和终止

杀马特。学长 韩版系。学妹 提交于 2020-01-19 07:53:50
刚看完 UNIX 第五章内容,我想按照自己的方式将自己获得的知识梳理一遍,以便日后查看!先贴上一段简单的 TCP 服务器端代码: 1 #include <sys/socket.h> 2 #include <netinet/in.h> 3 #include <stdio.h> 4 #include <error.h> 5 #include <unistd.h> 6 #include <string.h> 7 #include <stdlib.h> 8 9 #define MAXLINE 5 10 #define SA struct sockaddr 11 int main() 12 { 13 int listenfd, connfd; 14 pid_t childpid; 15 int readn, writen; 16 socklen_t clilen; 17 char buf[MAXLINE]; 18 struct sockaddr_in servaddr, cliaddr; 19 //创建监听套接字 20 if((listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) 21 { 22 printf("socket() error!"); 23 exit(0); 24 } 25 //先要对协议地址进行清零 26 bzero(

python基础——socket

人盡茶涼 提交于 2020-01-19 03:48:20
一.socket概念 1.理解socket 络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可 供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式; Socket是发动机,提供了网络通信的能力。 Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述 IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运 行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同 的服务。Socket正如其英文原义那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号, 有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座, 就可以得到不同的服务。 Socket是应用层与 TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中, Socket其实就是一个门面模式, 它把复杂的 TCP/IP协议族隐藏在

LINUX 服务器遭到SYN FLOOD攻击

∥☆過路亽.° 提交于 2020-01-19 01:53:08
服务器慢了,我一看,压力很大,ping值有1000多ms, netstat - an 有 10000多。 并且有250多个连结处于SYN_RECV状态。 一查才知道,这是典型的SYN攻击的表现。 这还是第一次真正遇到这种情况,之前我一直对攻击不太在意的。没想到还真有这么无聊的。干吗找我们?我们已经是树大招风了?好像还没这么强吧。 没办法,只能看看能否解决这个新难题。 找到这个文章,很不错,转过来: http : //www.csna.cn/viewthread.php?tid=4658 文章中有command 有一些错的地方,可能是排版引起的,注意一下即可。 LINUX下SYN攻防战 ( 一 ) SYN攻击原理 SYN攻击属于DOS攻击的一种 , 它利用TCP协议缺陷 , 通过发送大量的半连接请求 , 耗费服务器CPU和内存资源 . SYN攻击聊了能影响主机外 , 还可以危 害路由器 , 防火墙等网络系统 , 事实上SYN攻击并不管目标是什么系统 , 只要这些系统打开TCP服务就可以实施 . 我们知道 , 在网络中两台电脑建立TCP连接 时需要进行三次握手过程 , 客户端首先向服务器发关TCP SYN数据包 , 接着服务器会向客户端发关相应的SYN ACK数据包 , 最后客户端会以ACK进行响应 . 从而建立正常的握手过程 . 在具体的连接细节中 , 服务器最早接受到SYN包时 ,

SFTP 知识合集

こ雲淡風輕ζ 提交于 2020-01-19 00:40:33
SFTP协议的工作原理 AS2(Applicability Statement 2)协议是一种应用广泛的企业间B2B通信协议,它被设计用来安全的交换EDI信息,以使交易的双方确保信息交换可靠、安全的完成。AS2协议是基于HTTP/S来进行数据交换。通过使用加密和数据签名传输将数据封装为S/MIME(安全多用途互联网邮件扩展协议)的数据,并且使用MDM(消息处理通知)确保数据在网络上能够安全可靠地传输。下面为AS2通信信息传递的流程图: AS2通信流程图(图片来源:http://www.edinet.cn/EDITransmission/WhatIsAS2.html) 这东西看起来很高端,也很安全,并且通过HTTP/S来传输数据,这个很符合我们的口味。但是,它维护的成本非常高,防火墙设置,AS2配置定期维护变更,传输文件名称长度限制在45bytes以内等等,这一系列配置与限制,不得不让我对这一复杂的协议望而却步。并且银行建议我们去购买成熟的AS2商业套件来与他们对接。这条路径还仅仅只是为上传付款文件到银行而铺设,我们要获取付款确认文件和MT940对账单还是需要通过FTP之类的方式传递给我们。那么,通过这个方案进行直连就太不划算了。 既然AS2不划算,那我们自然就会询问银行是否还有其它的直连方案。银行便给我们SFTP和FTPS这两种方案供我们选择。后来,在聊天的过程中