原文地址:https://blog.csdn.net/zuishikonghuan/article/details/48030539

创建了ServerSocket以后,并不是没事了,其实上,为了系统安全考虑,创建服务器套接字后,只是创建成功了,但是在数据包入站的时候呢,会被防火墙过滤,因此,我们就收不到来自网络的数据了。
因此,在系统的默认安全级别下,当一个程序第一次创建ServerSocket时,系统会弹出一个这样的对话框:
除非用户同意,点“运行访问”,否则就没办法通信,而你的程序,收不到半点异常
因为防火墙不是阻止的服务器套接字的创建,而是阻止来自网络的数据包入站!
但关键的问题是,这个对话框里的东西写的太那啥了,所以用户根本看不懂,于是不知道怎么办,所以一般都是点右上角的“X”,就和点“取消”是一个效果。
那么,我们的程序是不是就要在万恶的防火墙的魔爪下颤抖吗?!
似乎是这样,但其实,我们要反抗防火墙这种无理的行为!
首先,我们需要拿到管理员权限,这个不难,具体可以看我的博文:http://blog.csdn.net/zuishikonghuan/article/details/46965159
然后,我们运行netsh:(比如用ShellExecute或者CreateProcess)
netsh advfirewall firewall delete rule name="程序名称"netsh advfirewall firewall delete rule name="程序名称.exe"netsh advfirewall firewall add rule name="程序名称" dir=in action=allow program="程序路径" enable=yes
 
注:只在Vista以上系统中有效
解释一下,删除动作最好多做几个,有你程序的文件名称,版本信息里的名称,最好都删一次,因为如果已经弹过一次框的话,你不知道防火墙用的哪一个名称记录的(有版本信息的时候一般是版本信息里的名称),如果不把之前的删掉还是不行,要么就在创建套接字之前或软件安装的时候用,这样也行。
这就等效于用户点击了“允许访问”,就不会跳那个框了!相当于实现了穿透防火墙,但防火墙没有关闭,同时用户也不会发现。(谁会无聊到翻防火墙规则去)
然后,我们偷着乐呵去吧!哈哈

让Socket穿透Windows防火墙的更多相关文章

  1. 【转】玩玩你的Windows防火墙——穿透与防御

    前言:在防火墙专区,我经常看见朋友们讨论,“某某防火墙的性能如何”,亦或是,“某某防火墙的防御能力如何”.实际上,一个防火墙所履行的基本职责便是“网络访问控制”,即放行我们允许的通信,阻止我们未允许的 ...

  2. 如何配置Windows 防火墙,允许SQL Server的远程连接

    一.如何找到SQL Server正在侦听的TCP端口,可以按一下步骤: 1.打开 SQL Server 配置管理器中,从开始->所有程序-> Microsoft SQL Server 20 ...

  3. 解决windows防火墙无法启动的问题

    windows防火墙突然无法开启,找个各种方法,最后还是通过微软自动的修复工具修复的: 网址如下: https://support.microsoft.com/zh-cn/mats/windows_f ...

  4. 利用ftp端口设置,浅谈windows防火墙之应用+ftp直接资源管理器登陆

    win服务器的版本是不错的.防火墙也比较能用.server-u 6.4则是比较稳定.兼容性好的的版本,所以很多人在用 1.服务器为了安全,一般开启windows高级防火墙,在网络连接处右键鼠标,有弹出 ...

  5. windows防火墙打不开的处理办法

    一.防火墙配置出错 开始-->运行-->gpedit.msc 这时,打开了组策略 在左面分级展开 计算机配置-->管理模板-->网络-->网络连接-->Window ...

  6. 针对 SQL Server 2008 在Windows Server 2008上的访问配置 Windows 防火墙

    现在Windows Server 2008 服务器用的越来越多,2008的防火墙比2003的有了很大的增强,安全性有了更大的提高. 甚至80端口的出站默认都是被关闭的.所以如果在2008Server上 ...

  7. windows防火墙添加规则

    #include <windows.h> #include <crtdbg.h> #include <netfw.h> #include <objbase.h ...

  8. windows防火墙无法启动,服务不存在

    系统的防火墙无法启动,系统服务里面也没有防火墙的服务,用下面第一种方法,导 入注册表,重启服务器,在服务里面有防火墙的服务了,然后启动就好了,需要重新配置防火墙 在控制面板中启动防火墙的时候提示无法识 ...

  9. 通过配置Windows 防火墙允许使用TCP/IP协议远程访问数据库

    原文:通过配置Windows 防火墙允许使用TCP/IP协议远程访问数据库 本文适用于:2005.2008.2008R2所有版本 为了可以通过TCP/IP协议远程访问SQLServer数据库,需要做以 ...

随机推荐

  1. EF报错:对一个或多个实体的验证失败(Entity Framework 强制转换失败数据异常处理方法)

    1.使用MVC和EF,在保存数据的时候报错:System.Data.Entity.Validation.DbEntityValidationException: 对一个或多个实体的验证失败.有关详细信 ...

  2. Delphi CheckBox组件

  3. macOS安装Python MySQLdb

    macOS安装Python MySQLdb 0. 参考 Mac OS X - EnvironmentError: mysql_config not found 1. 背景 import MySQLdb ...

  4. php获取当前网页地址

    判断是否为https /** * 判断是否为https * @return bool 是https返回true;否则返回false */ function is_https() { if ( !emp ...

  5. Cypress自动化测试系列之二

    本文技术难度★★★,如果前编内容顺利执行,请继续. 如果Selenium尚无法灵活运用的读者,本文可能难度较大. “理论联系实惠,密切联系领导,表扬和自我表扬”——我就是老司机,曾经写文章教各位怎么打 ...

  6. conda 安装虚拟环境 fastai

    一.conda常用命令 1.创建一个虚拟环境env_name,后面跟的是创建这个环境时,同时安装的软件包 conda create -n env_name python=3.6 2.通过克隆创建一个环 ...

  7. java同步锁实现方法

    1.synchronized关键字修饰 当用此关键字修饰方法时,     内置锁会保护整个方法.在调用该方法前,需要获得内置锁,否则就处于阻塞状态 synchronized关键字也可以修饰静态方法,此 ...

  8. windows静态路由

    本机:192.168.1.10 本机网关:192.168.1.254 目的IP:188.1.1.10 指定网关:192.168.1.107 最多跳数:10跳 route  -p  add  188.1 ...

  9. maven私仓搭建——nexus3

    maven私仓搭建——nexus3本文主要介绍maven私仓在windows下的搭建.本文主要参考:http://www.cnblogs.com/bingyeh/p/5913486.html好,下面上 ...

  10. C++使用socket传输图片

    Client: #include <WinSock2.h> #include <Windows.h> #include <stdio.h> #pragma comm ...