要学会写小程序来完成自己想要的功能
2014-08-13 13:35
357 查看
斯诺登事件已经曝光, 安全问题也成为软件开发面临的重要问题。
现在假设有这样一个场景, 某系统在某一时间段内有概率性地监听8888端口, 数秒后又关闭了监听, 这是客户反馈的结果, 客户对安全性产生了担忧。 现在开发人员要重现这个概率性问题, 怎么办呢? 在这个概率性的情况下, 端口开启的时间比较短, 貌似没有现成的工具可以检测和复现, 其实, 我们完全可以写一个简单的测试程序来循环探测这个问题, 代码上菜:
That's it.
当然, 如果是只想探测一次, 在Windows的cmd中用telnet x.y.z.w 8888即可。
现在假设有这样一个场景, 某系统在某一时间段内有概率性地监听8888端口, 数秒后又关闭了监听, 这是客户反馈的结果, 客户对安全性产生了担忧。 现在开发人员要重现这个概率性问题, 怎么办呢? 在这个概率性的情况下, 端口开启的时间比较短, 貌似没有现成的工具可以检测和复现, 其实, 我们完全可以写一个简单的测试程序来循环探测这个问题, 代码上菜:
#include <winsock2.h> #include <stdio.h> #pragma comment(lib, "ws2_32.lib") int main() { WORD wVersionRequested; WSADATA wsaData; wVersionRequested = MAKEWORD(1, 1); WSAStartup( wVersionRequested, &wsaData ); SOCKET sockClient = socket(AF_INET, SOCK_STREAM, 0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); // ip改为你系统的IP addrSrv.sin_family = AF_INET; addrSrv.sin_port = htons(8888); while(1) { int ret = connect(sockClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR)); if(0 == ret) { printf("I made it."); while(1); } } closesocket(sockClient); WSACleanup(); return 0; }
That's it.
当然, 如果是只想探测一次, 在Windows的cmd中用telnet x.y.z.w 8888即可。
相关文章推荐
- 编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc。
- 11周2-2项目 - 存储班长信息的学生类,将Stu类的数据成员的访问权限改为private,你的程序是否能完成要求的功能?如果不行,请修改程序。请不要修改给出的代码,只能修改自己写的代码。
- 发现Windows程序 最主要的还是要理解消息和窗口的相互调用,相互影响是如何实现的,才能更准确的去理解Windows程序,去编好自己想要的程序功能
- 编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上。
- 存储班长信息的学生类,将Stu类的数据成员的访问权限改为private,你的程序是否能完成要求的功能?如果不行,请修改程序。请不要修改给出的代码,只能修改自己写的代码。
- 学会使用函数编程,以及设计比较完备的测试用例完成对小程序的测试
- 运用ANT地SQL Task来完成自己地Java执行SQL脚本文件地功能
- 看着C#的程序,突然之间觉得自己什么也没学会呢?
- 如何给自己的程序增加插件功能-用DLL做插件
- Ajax程序中,自己实现页面前进、后退、与标签功能(asp.net2.0)
- 写一个字符串分割程序,在不使用string类和Array类内置函数的前提下完成该功能:
- 给IE工具栏添加自己想要的程序
- 给自己的程序增加网页浏览功能
- Ajax程序中,自己实现页面前进、后退、与标签功能(asp.net2.0)
- 炫耀下今天自己完成的程序11
- 炫耀下今天自己完成的程序11
- 使用管道编程----利用别人的程序,实现自己的功能
- 编写程序,完成文件复制功能,即将a.txt文件内容复制到b.txt文件中去
- 关于程序本身启动更新程序完成更新后再启动自己的源码
- Ajax程序中,自己实现页面前进、后退、与标签功能(asp.net2.0)