asp.net - c#中怎么实现监听某个端口经过的所有request和response

查看:180
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆