asp.net - c#中怎么实现监听某个端口经过的所有request和response
本文介绍了asp.net - c#中怎么实现监听某个端口经过的所有request和response的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
最近有个实现代理方面的需求,需要获得某个端口号下经过的所有流量,包括客户端的请求以及服务端的响应。
在Nodejs中有http
组件,可以实现这个功能,创建http.server
就可以对请求响应进行监听、截获,在c#中有什么方法可以实现这样的功能呢?
希望对这方面了解的朋友指点一下,谢谢!
解决方案
这真是个大问题,很难一两句说清楚,贴点关键代码, 给点思路吧
const int DEFPORTNUM = 8097;
int port2use = DEFPORTNUM;
const int BACKLOG = 1000; // maximum length of pending connections queue
Socket listener = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPAddress ipAddress = IPAddress.Loopback;
IPEndPoint localEndPoint = new IPEndPoint(ipAddress, port2use);
listener.Bind(localEndPoint);
listener.Listen(BACKLOG);
while (true)
{
try
{
Socket socket = listener.Accept();
//Socket socket = tcplistener.AcceptSocket();
//并获取传送和接收数据的Scoket实例
if (socket != null)
{
//操作这个socket就能满足你的要求了,至于数据解析,又是另外的大问题了
}
}
catch { }
}
这篇关于asp.net - c#中怎么实现监听某个端口经过的所有request和response的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文