delphi7写应用程序作为服务端。
delphi7安装websocket组件太麻烦了,还收费。
既然websocket也是一个socket,那本人解析websocket就可以了。
我只实现了握手,数据帧的简单解析。
可以进行除汉字外的简单收发。
如果你应用不是太深的话没问题的。
若是深的话估计这些简单的你都会。



2020/8/16 19:09:25 530KB delphi websoc socket
1
DataScope小软件,内置stm32的支持库,可经过串口给PC端发送特定数据帧,显示波形,最多支持10通道的波形显示
1
(1)按原理图连接好电路,其中8254计数器用于产生8251的发送和接收时钟,TXD和RXD连在一同。
(2)编程:从键盘输入一个字符,将其封装成为数据帧后发送出去,并进行差错检测及奇偶校验,再接收回来在屏幕上显示,实现自发自收。
1
模仿数据链路层的gobackn协议/*该协议是搭载ack的回退n步协议*/#include#include"protocol.h"#definemax_seq7#defineflag126#defineESC100#definewait_time2700 //发送计时器等待的时间#defineack_wait_time280staticintphl_ready=0;unsignedcharbuf[max_seq+1][270];unsignedcharack[8];//发送空的ack帧unsignedcharin_buf[600],last_buf[520];//接收时的缓冲区;去掉冗余之后的缓冲区,为防备因误码两帧合并为一帧而定义了很大一个数组intnbuffered=0;//发送的帧数intbuf_size[max_seq+1];//记下以发送各帧的帧长intnext_frame_to_send=0;intframe_in_phl=0;//用于成帧intframe_expected=0;intack_expected=0;intbetween(inta,intb,intc){ if(((a<=b)&&(b<c))||((c<a)&&(a<=b))||((b<c)&&(c<a))) return1; elsereturn0;}//判断帧尾,防止出现误判escescflag为数据的情况intend_flag(intin_len){ intcount=0; inti; if(in_len=0;i--)//记录flag前的esc数目 count++; returncount%2;//若flag前的esc为偶数,则为帧尾}//成帧函数--数据帧voidsend_frame(char*my_buf,intlen){ intn; buf[frame_in_phl][0]=(frame_expected+max_seq)%(max_seq+1); //ack buf[frame_in_phl][1]=frame_in_phl; //发送帧的帧号 for(n=0;n<len;n++) buf[frame_in_phl][n+2]=my_buf[n]; //将处理过的新帧赋值到缓冲区中 len=len+2; *(unsignedint*)(buf[frame_in_phl]+len)=crc32(buf[frame_in_phl],len); //在原始帧的基础上加检验和 buf_size[frame_in_phl]=len+4; //记录当前帧的长度,包括3个帧头,4个检验和 nbuffered=nbuffered+1; //缓冲区占用数加一 frame_in_phl=(frame_in_phl+1)%(max_seq+1);}//成帧函数--ack帧voidsend_ack() //ack帧的处理{ ack[0]=(frame_expected+max_seq)%(max_seq+1); ack[1]=max_seq+10; //ack帧的序号位,使ack[1]==frame_expected恒不成立 *(unsignedint*)(ack+2)=crc32(ack,2); //在原始帧的基础上加检验和}//主函数intmain(intargc,char**argv){intevent,arg,n,m,i,j,len=0,in_len=0; unsignedcharmy_buf[260]; intphl_wait=0;//在物理层中还没有被发送的帧protocol_init(argc,argv);enable_network_layer();for(;;){event=wait_for_event(&arg);switch(event){caseNETWORK_LAYER_READY:
2019/7/26 21:18:43 425KB go back n gobackn
1
西门子PLC协议对于开发人员协助很大,PLC——TCP协议中规定了初始化字、读写操作数据帧格式等
2017/7/17 21:19:21 400KB PLCTCP协议
1
软件引见:DLT698-45协议调试工具可进行属性操作、方法操作、前置通讯终端登陆及心跳数据帧。
config.iniDLT698-45.exeIniFileOper.dllssInfo.mdb
2015/10/13 15:38:36 532KB 其他资源
1
输出帧的信息(十六进制),就可实现对数据帧的封装!计算帧的长度和进行CRC校验……
2018/5/23 6:42:49 3.46MB C++ IEEE802.3
1
使用Logisim搭建一个除数为四位,原数据帧为8位的CRC校验码计算电路;
一个四位运算单元ALU;
一个GRF;
一个Melay型有限状态机检测串行输入字符串中的能婚配正则表达式b{1,2}[ac]{2}的子串并输出。
2022/9/3 15:40:07 11KB 计算机组成 logisim
1
在进行计算机网络编程学习的时候,对于比较抽象的网络编程的理解始终是不太明白,然后查找相关资料后整理了16张关于网络基础知识及编程模型的图,形象化的加深了我对网络编程的理解,其中包括IP报文格式、TCPIP协议簇的四个层次,TCP包首部、TCP编程模型、UDP编程模型、UDP的封装、网络的传输过程,局域网上运行两台FTP主机的模型、以太网数据帧的分用过程以及用于以太网的ARP请求或应答分组格式等16张图,希望对大家对计算机网路的学习也有些许的协助。
2018/11/14 14:50:46 396KB 网络图 网络 网络传输 Linux网络编程
1
ATmega128具有两个USART,USART0(PE0-RXD0,PE1-TXDO)和USART1(PD2-RXD1,PD3-TXD1)。
USART0和USART1具有不同的I/O寄存器。
掌握串口通讯需要了解的知识内容为:电平变换:TTL电平——RS-232电平了解数据帧格式内容控制寄存器与形态寄存器的设置通讯波特率的设置单片机如何与计算机进行串口通讯串口调试助手软件如何实现多机通讯
2021/6/6 12:35:38 1.07MB Atmega128 串口 通讯
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡