AsyncSocket 使用
今天使用AsyncSocket模拟及时通信,在这里记录一下,免得以后自己又犯相同的错误 1>创建客户端和服务器socket 1 /**
2 * 设置socket
3 */
4 - (void)setupSocket
5 {
6 //1.客户端socket
7 _clientSocket = [[AsyncSocket alloc] initWithDelegate:self];
8 //2. 启用定时器连接服务器
9
10
明天关键位置是2870点
延续昨天的升势,今天大盘以跳高的方式开盘,小幅回落后继续上涨,由于没有回落到心理价下面,在补了2883点的缺口后,短线资金纷纷出逃,导致了尾盘的快速杀跌,与笔者昨天预测的“冲高必然要回落”相吻合。从技术上来分析,60分钟的8小时平均线位于2870点,由于这是一条短期牛熊线,在此之下个股机会将减少;MACD指标继续红色,KDJ指标已经死叉中,排除消息的影响,明天要关注MACD指标,只有不出现绿色,并且再次突破8小时平均线时,才有希望继续向上攻击,反之,请耐心等待J值见负再入场。由于明天是重要的时
zabbix--自带模板监控MySQL服务
zabbix有内置的模板,不过需要修改下配置,配置文件路径在: [root@localhost ~]# cd /etc/zabbix/
[root@localhost zabbix]# ls
web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf zabbix_server.conf_bak
[root@localhost zabbix]# ll zabbix_agentd.d/userparameter_mysql.c
从CLR GC到CoreCLR GC看.NET Core对云原生的支持
原文:从CLR GC到CoreCLR GC看.NET Core对云原生的支持 内存分配概要 前段时间在园子里看到有人提到了GC学习的重要性,很赞同他的观点。充分了解GC可以帮助我们更好的认识.NET的设计以及为何在云原生开发中.NET Core会占有更大的优势,这也是一个程序员成长到更高层次所需要经历的过程。在认识GC的过程中,我们先看一下.NET中内存分配的概要知识。 .NET分配内存,主要依据托管资源和非托管资源进行分配。托管资源分配到了托管堆中并受CLR的管理,非托管资源分配到了非托管堆
django中间件 csrf auth认证
django中间件 能做全局访问频率限制,身份校验,黑名单,白名单 用法: 新建一个文件夹,文件夹新建一个py文件,文件中写如下代码 注意点:你写的类必须继续MiddlewareMixin from django.utils.deprecation import MiddlewareMixin from django.shortcuts import HttpResponse
[设计原则与模式] 如何理解TDD的三条规则
cp from : https://blog.csdn.net/ibelieve1974/article/details/54948031 如何理解Bob大叔的TDD三条规则? 第一条和第三条讲的是只有和只要。只有Case False的情况下才能写Code。只要新写的Code使得Case通过了,就不要写任何新功能代码了。重构是可以的。 第二条是说只允许编写Case失败的代码。这一条操作起来有个疑惑。比如为写一个算法,先把写一个验证功能的Case,然后写代码。Case通过以后,想验证下特殊值情况
C语言 指针在函数传参中的使用
int add(int a, int b) //函数传参的时候使用了int整型数据,本身是数值类型。实际调用该函数时,实参将自己拷贝一份,并将拷贝传递给形参进行运算。实参自己实际是不参与运算的。所以在该函数中,实参本身是没有得到改变的。 int main() { int x = 3, y = 5; swap(x, y); printf("x = %d ,y = %d\n",x, y); //交换失败 swap_pointer(&x, &y); printf("x = %d ,y =
py知识(每日更新) 6.24
开放封闭原则 软件面试时,不可能把所有的功能都设计好,当前的未来一两年功能上线,定期更新迭代,对于软件之前的写得源代码一般都不会修改.对函数里面的代码以及函数的调用方式 开放原则:在源码不改变的情况下,增加一些额外的功能 封闭原则:不改变源码 不改变函数的调用方式 Python装饰器:完美的全是的开放封闭原则 装饰器就是一个函数,他要装饰一个函数,在不改变原函数的源码以及调用方式的前提下,给其增加一个额外的功能. 初识装饰器 标准版装饰器 def warpper(f):
def inn
题解 P2089 【烤鸡】
#include<bits/stdc++.h>
using namespace std;
int n,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,ans;
int main(){
scanf("%d",&n);
if(n>30||n<10){
printf("0");
return 0;
}//因为最大每种放三克,若大于3*10或小于1*10,即大于30或小于10均不满足
for(i1=1;i1
Java开发笔记(一百一十五)使用Socket开展文件传输
前面介绍了怎样通过Socket在客户端与服务端之间传输文本,当然Socket也支持在客户端与服务端之间传输文件,因为文件本身就是通过I/O流实现读写操作的,所以在套接字的输入输出流中传输文件真是再合适不过了。只是套接字属于长连接,倘若Socket一直不关闭,连接将总是处于就绪状态,也就无法判断文件数据是否已经传输完成。为了检验文件传输的结束时刻,可以考虑实时下列的两种技术方案之一: 1、客户端每次连上Socket之后,只发送一个文件的数据,且发送完毕的同时立即关闭套接字,从而告知服务端已经成功
文件CRC和MD5校验
文件CRC和MD5校验 CRC和MD5用于文件和数据的传输校验,以确认是否接收成功。 unit CRCMD5;
interface
{ 获取文件CRC校验码 }
function GetFileCRC(const iFileName: string): String;
{ 获取字符串CRC校验码 }
function GetStringCRC(const Str: string): Cardinal;
{ 取文件MD5码 }
function GetFileMD5(const
遗传算法入门--连载6
为什么80%的码农都做不了架构师?>>> 连载之六 染色体的编码 3.4.1 为染色体编码(Ecoding the Chromosome)
每个染色体必须把小人Bob 的每一个行动编入代码中。Bob的行动仅限为4个方向: 向东(East),向南(South),向西(West),向北(North) 故编码后的染色体应该就是代表这4个方向信息的一个字符串。传统的编码方法就是把方 向变换成二进制的代码。四个方向只要2位就够了,例如下表所示的那样:
通用权限管理系统组件 (GPM - General Permissions Manager) 中实现多子系统的集中统一管理,可以集成部署也支持独立部署...
为什么80%的码农都做不了架构师?>>> 只开发一套业务管理系统,或者只维护一套业务管理系统是相对简单的事情,但是你要同时给多个客户开发多套系统,或者同时维护多个公司提供的多套系统时烦恼就来了,我们通用权限管理系统里有比较好的实现方式,有可以独立,也可以集成在一起的管理办法。 当然我们的最终梦想是大家都用通用权限管理系统,这样我们的各个系统之间的集成的难度,复杂度就会少很多了,将来我们的各个厂商的业务系统都可以很容易的集成在一起了。下面看我们在通用权限管理系统里是如何实现多个子系统的灵活权限管
今日推荐
周排行