一个简单使用Detours库的例子。
Hook系统API,send和recv函数。
2024/12/29 0:02:17 8.18MB Detours
1
关于封包操作的实例修改发送拦截WSPSEND,SEND几种不同的模式有五种不同的种类代码,每种里有不同的对接口的操作。
采集数据包,拦截封包,拦截连接,枚举连接,等。
2024/11/29 4:40:05 23KB 封包 修改 拦截 发送
1
内含Digital_baseband_array.mDigital_baseband_awgn.mDigital_baseband_ber.mDigital_baseband_eye_pattern.mDigital_baseband_filterR.mDigital_baseband_filterT.mDigital_baseband_judgement.mDigital_baseband_noise.mDigital_baseband_noise_va.mDigital_baseband_sample.mDigital_baseband_send_signal.mshyx.msqrt_shyx.mdtft2.midft.m等子程序或函数
2024/11/11 12:02:02 7KB matlab
1
<计算机网络实验>基于TCP的网络聊天室的设计-实验指导一、实验目的1.掌握通信规范的制定及实现。
2.练习较复杂的网络编程,能够把协议设计思想应用到现实应用中。
二、实验内容和要求1.进一步熟悉VC++6编程环境;
2.利用VC++6进行较复杂的网络编程,完成网络聊天室的设计及编写;
三、实验(设计)仪器设备和材料1.计算机及操作系统:PC机,Windows;
2.网络环境:可以访问互联网;
四、TCP/IP程序设计基础基于TCP/IP的通信基本上都是利用SOCKET套接字进行数据通讯,程序一般分为服务器端和用户端两部分。
设计思路(VC6.0下):第一部分 服务器端一、创建服务器套接字(create)。
二、服务器套接字进行信息绑定(bind),并开始监听连接(listen)。
三、接受来自用户端的连接请求(accept)。
四、开始数据传输(send/receive)。
五、关闭套接字(closesocket)。
第二部分 客户端一、创建客户套接字(create)。
二、与远程服务器进行连接(connect),如被接受则创建接收进程。
三、开始数据传输(send/receive)。
四、关闭套接字(closesocket)。
CSocket的编程步骤:(注意我们一定要在创建MFC程序第二步的时候选上WindowsSocket选项,其中ServerSocket是服务器端用到的,ClientSocket是客户端用的。
)(1)构造CSocket对象,如下例:CSocketServerSocket;CSocketClientSocket;(2)CSocket对象的Create函数用来创建WindowsSocket,Create()函数会自行调用Bind()函数将此Socket绑定到指定的地址上面。
如下例:ServerSocket.Create(823);//服务器端需要指定一个端口号,我们用823。
ClientSocket.Create();//客户端不用指定端口号。
(3)现在已经创建完基本的Socket对象了,现在我们来启动它,对于服务器端,我们需要这个Socket不停的监听是否有来自于网络上的连接请求,如下例:ServerSocket.Listen(5);//参数5是表示我们的待处理Socket队列中最多能有几个Socket。
(4)对于客户端我们就要实行连接了,具体实现如下例:ClientSocket.Connect(CStringSerAddress,UnsingedintSerPort);//其中SerAddress是服务器的IP地址,SerPort是端口号。
(5)服务器是怎么来接受这份连接的呢?它会进一步调用Accept(ReceiveSocket)来接收它,而此时服务器端还须建立一个新的CSocket对象,用它来和客户端进行交流。
如下例:CSocketReceiveSocket;ServerSocket.Accept(ReceiveSocket);(6)如果想在两个程序之间接收或发送信息,MFC也提供了相应的函数。
如下例:ServerSocket.Receive(String,Buffer);//String是你要发送的字符串,Buffer是发送字符串的缓冲区大小。
ServerSocket.Send(String,Butter);//String是你要接收的字符串,Buffer是接收字符串的缓冲区大小。
2024/10/25 8:57:34 4.24MB 基于TCP的网络聊天室 网络聊天室
1
三、实验内容1、编写一个shell脚本程序,打印出班级总成绩排名在前3名(按总成绩递增)学生的姓名、学号和总成绩。
打印输出的格式如下(姓名、学号、第1、2、3门课程成绩及总成绩): 2、编写一个menu的shell脚本程序,执行后的界面为: Number Name ForLinuxMenu 1 exit leavemenuorreturn 2 menu gotoanotherlocalmenu 3 vi deitafile 4 mail readamail 5 send sendmailtosomeone 6 cal seeyourcalendar 7 who seewhoisonthesystem 8 ls listthefilesinthisdirectory 9 cat displayafileonthescreen Pleaseenteranumberoranamefortheactionyouwish: 要求有清屏功能,能正确地执行各项命令并显示。
2024/10/8 21:52:19 80KB linux 实验七 shell 编程
1
时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了。
这次真的打死也不再改版了。
旧版本1:http://www.qtcn.org/bbs/read-htm-tid-55540.html旧版本2:http://www.qtcn.org/bbs/read-htm-tid-62636.html基本功能:1:16进制数据和ASCII数据收发。
2:定时器自动发送。
3:自动从配置文件加载最后一次的界面设置。
4:自动从配置文件加载数据发送下拉框的数据。
可以将经常使用的数据填写在send.txt中。
5:可启用设备模拟回复,当收到某个数据时,模拟设备自动回复数据。
对应数据格式填写在device.txt中。
6:可对单个在线连接发送数据,也可勾选全部进行发送。
7:支持多个客户端连接并发。
8:采用单线程。
9:四种模式,tcp服务器、tcp客户端、udp服务器、udp客户端。
2024/9/10 10:22:16 263KB Qt tcp udp
1
在电子(Electron)+Vue项目中实现打印小票功能,主要涉及到Electron的API使用和Vue组件的配合。
以下是对实现这一功能的详细解释:1.**需求分析**:-公司项目中可能需要通过Electron应用程序调用用户的系统打印机,以便能够无声无息地打印出小票,即所谓的“静默打印”。
2.**技术选型**:-在Electron中,有两种主要的打印方法:-第一种方法是通过`window.webContents`对象,这需要创建一个新的打印窗口,即使可以将其隐藏,但通信和调用过程相对复杂。
-第二种方法是利用`webview`元素进行打印,它可以被隐藏在调用页面中,通信过程更为简单。
本文采用的就是这种方法。
3.**实现步骤**:-**获取打印机列表**:-渲染线程(通常是Vue组件,如`print.vue`)通过`ipcRenderer`发送`getPrinterList`事件到主线程。
-主线程中的`electron.ipcMain`监听这个事件,调用`window.webContents.getPrinters()`获取打印机列表,并将结果通过`webContents.send`回传给渲染线程。
-**构建小票排版**:-重点在于使用``标签,它可以理解为一个内嵌的浏览器,用于显示待打印的内容。
-创建一个`print.html`文件,将小票内容在这个HTML文件中展示出来。
如果内容是通过canvas绘制的,可以将canvas转换为base64编码的图片,然后在``中显示。
-使用`@page`CSS规则设置打印样式,例如设置小票的边距等,确保打印效果符合需求。
4.**实际代码示例**:-在`print.vue`组件中,可以有以下代码片段来处理打印机列表和触发打印:```javascript```-在`print.html`文件中,可能包含如下代码以展示打印内容:```html-_-将base64图片插入此处-_-```5.**调用打印**:-一旦``准备好显示内容,可以通过`webview`对象的`print`方法调用打印。
这通常在Vue组件的方法中触发,比如`printTicket`方法。
-例如:```javascriptfunctionprintTicket(){constwebview=document.querySelector('webview');webview.print({silent:true,printBackground:true,deviceName:this.selectedPrinter});}```以上就是使用Electron+Vue实现打印小票功能的主要步骤和技术细节。
这个过程中,关键在于利用Electron提供的`ipcMain`和`ipcRenderer`进行主线程与渲染线程之间的通信,以及``标签实现内容的显示和打印。
通过这些技术,可以创建一个用户友好的桌面应用,无缝集成打印功能,满足业务需求。
2024/9/5 16:49:39 59KB electron electron vue
1
/***初始化SDK*/privatestaticvoidinitSDK(Stringappid,Stringappkey){ProxySelectordefaultProxySelector=ProxySelector.getDefault();Proxyproxy=null;ListproxyList=null;try{proxyList=defaultProxySelector.select(newURI("http://www.google.it"));}catch(URISyntaxExceptione){e.printStackTrace();}if(proxyList!=null&&proxyList.size()>0){proxy=proxyList.get(0);Log.d(TAG,"CurrentProxyConfiguration:"+proxy.toString());}AppInfoappInfo=newAppInfo();appInfo.setAppId(appid);//应用IDappInfo.setAppKey(appkey);//应用KeyappInfo.setCtx(ctx);/**VersionCheckLevelNormal版本检查失败可以继续进行游戏VersionCheckLevelStrict*版本检查失败则不能进入游戏默认取值为VersionCheckLevelStrict*/appInfo.setVersionCheckStatus(AppInfo.VERSION_CHECK_LEVEL_STRICT);//初始化SDKCommplatform.getInstance().Init(0,appInfo,newCallbackListener(){@Overridepublicvoidcallback(finalintparamInt,IntegerparamT){ctx.runOnUiThread(newRunnable(){@Overridepublicvoidrun(){Log.i(TAG,"InitparamInt="+paramInt);//ok.setEnabled(true);LogUtil.send("初始化:"+paramInt);}});}});}/***用户登录**/publicstaticvoidloginEx(Contextcontext){Bundlebundle=newBundle();bundle.putString("nounce",UUID.randomUUID().toString().replace("-",""));Commplatform.getInstance().LoginEx(context,bundle,newCallbackListener(){@Overridepublicvoidcallback(intresultCode,Bundlebundle){if(resultCode==ErrorCode.COM_PLATFORM_SUCCESS){//完成参数验签//处理登录成功逻辑//HomeActivity.show(ctx);//Stringuin=bundle.getString("uin");LogUtil.send("登录成功:");//Stringuin=bundle.get("nounce").toString();Stringuin=Commplatform.getInstance().getLoginUin();LogUtil.send("登录成功uin:"+uin);UnityPlayer
2024/8/25 11:15:30 920KB eclipse unity
1
蓝牙芯片HCI层的传输驱动,使用USB总线,适用于windows系统,驱动实现了4个借口:SEND_HCI,GET_STATUS,WriteFileReadFile;
2024/8/15 13:57:22 1.89MB HCI bluetooth 蓝牙 usb
1
Django1.9.2websocket实时消息推送服务端主动推送调用send(username,title,data,url)username:用户名title:消息标题data:消息内容,ulr:消息内容ulr
2024/6/29 13:18:12 170KB Django 实时推送 python
1
共 50 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡