最近遇到一个问题,windows下关于两个进程局域网内利用socket通信,发现在防火墙关闭时通信一切正常,打开防火墙导致通讯异常。
因为源代码是C#写的,编程环境是vs2013,这边我就描述一下用C#如何解决通信防火墙的问题。因为我的工程是单方面的接收数据,所以我只在接收数据的工程中添加了一下方法。
1、点击项目添加引用,在COM中找到NetFwTypeLib,然后添加引用,该引用包含了windows下防火墙的相关API。
2、我是新建了一个方法类FireWallTool.cs防火墙工具类,防火墙阻止通信的主要是端口,除去端口外,还需要将进程也添加到防火墙例外。核心添加防火墙例外的方法就2个,一个是添加防火墙例外端口,二是添加防火墙应用程序例外。下图是示例代码。
图片.png
图片.png
网友评论