C#监听端口并截取请求数据

zcphoenix1213 2012-12-13 06:58:42
先想做个线程一直在后台跑,监听本机端口。
可以截取到 像 http://127.0.0.1:9091?action=sync_login&depart_id=1&staff_id=AYD91A32&staff_name=中文乱码不能乱&pwd=111111

像这种在浏览器内提交的数据,要求能够截取到,并且中文不能乱码。


这会儿纠结死捏。
...全文
1336 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcphoenix1213 2012-12-21
  • 打赏
  • 举报
回复
我的程序是开机时自动启动后台服务,并开始监听某个端口,这个端口就我的程序使用。 用户在其他程序中会加个按钮,点击按钮就请求 http://127.0.0.1:9091?action=sync_login&depart_id=1&staff_id=AYD91A32&staff_name=中文乱码不能乱&pwd=111111 这种请求,我需要在监听9091端口的时候,能够将?后面的action=sync_login&depart_id=1&staff_id=AYD91A32&staff_name=中文乱码不能乱&pwd=111111 字符串拿到,并解析出来,从而调用不同的处理方法,并将结果返回回去。 我现在不知道是使用TcpListener 还是 Socket 监听这个端口。 C#刚学 没办法只能来这边发帖了。
showjim 2012-12-21
  • 打赏
  • 举报
回复
引用 13 楼 zcphoenix1213 的回复:
我的程序是开机时自动启动后台服务,并开始监听某个端口,这个端口就我的程序使用。 用户在其他程序中会加个按钮,点击按钮就请求 http://127.0.0.1:9091?action=sync_login&depart_id=1&staff_id=AYD91A32&staff_name=中文乱码不能乱&pwd=111111 这种请求,我需要在监听9091端口的时候,能够将?后面的action=sync_login&depart_id=1&staff_id=AYD91A32&staff_name=中文乱码不能乱&pwd=111111 字符串拿到,并解析出来,从而调用不同的处理方法,并将结果返回回去。 我现在不知道是使用TcpListener 还是 Socket 监听这个端口。 C#刚学 没办法只能来这边发帖了。
如果客户机可以安装IIS,就相当于做一个简单的网站。 否则需要写一个简单的web服务器,可以使用TcpListener,不过开机启动的需求需要做成windows服务。
showjim 2012-12-20
  • 打赏
  • 举报
回复
引用 11 楼 truelove12 的回复:
就当我什么也没有说吧。
不是这么说吧,毕竟是一种解决方案,讨论一下而已。 况且能否满足楼主的需求也是未知的。
showjim 2012-12-19
  • 打赏
  • 举报
回复
引用 6 楼 truelove12 的回复:
办法太多了。 1、直接安装个fiddler就可以了。 2、使用node.js,写个代理服务器。然后将浏览器的代理设置为node.js监听的端口。 3、用.net HttpListener,写个代理服务器,然后同上设置代理服务器。 fiddler不就是在本地的8888端口上监听的嘛。 更底层一样的就是监听网卡了
如果是自己,根本就不需要什么fiddler与node.js,C#写个代理还是很容易的。 如果是客户用怎么办?
  • 打赏
  • 举报
回复
办法太多了。 1、直接安装个fiddler就可以了。 2、使用node.js,写个代理服务器。然后将浏览器的代理设置为node.js监听的端口。 3、用.net HttpListener,写个代理服务器,然后同上设置代理服务器。 fiddler不就是在本地的8888端口上监听的嘛。 更底层一样的就是监听网卡了
showjim 2012-12-19
  • 打赏
  • 举报
回复
引用 2 楼 vpjian 的回复:
RAW Socket监听所有通信,然后自己解包。只要使用正确的编码,中文是不会出现乱码的。RAW Socket好实现,网上有很多代码,只是解包是处理比较复杂,没有现成代码,编码测试需要花很长的时间。你自己花点时间去测试和实现吧,不行的话找外包,或者等好心人帮你。
因为以前一个项目需要监听http这个功能,所以写过一部分,还算了解吧。 不过后来,因为需求不是那么严格,所以偷懒没写完。 本来需要3个部分,只写了一半左右,你要的话可以给你参考。 1、网络包的解析部分写完了。 2、tcp重组的部分只写了一两个函数就放一边了。 3、http解析这部分没有写,不过我写过一个简单的web server可以做参考。 最后,如果你没有相关经验,或者对tcp/ip+http不熟悉的话,不是短时间可以搞定的。 如果真要自己写,建议先磨磨刀,也就是先把tcp/ip与http协议相关部分搞明白。
  • 打赏
  • 举报
回复
引用 9 楼 sbwwkmyd 的回复:
引用 8 楼 truelove12 的回复:什么是客户用? 是指浏览器端的用户吗? 这不是一样嘛,做个控制台程序或windows服务,在客户的计算机上装上就行了 又要注册windows服务,又要修改每一个浏览器的代理。如果是个普通软件,用户很难接受的吧?
就当我什么也没有说吧。
  • 打赏
  • 举报
回复
监听请求,并解析数据可以 想拦截就比较难了
showjim 2012-12-19
  • 打赏
  • 举报
回复
引用 8 楼 truelove12 的回复:
什么是客户用? 是指浏览器端的用户吗? 这不是一样嘛,做个控制台程序或windows服务,在客户的计算机上装上就行了
又要注册windows服务,又要修改每一个浏览器的代理。如果是个普通软件,用户很难接受的吧?
  • 打赏
  • 举报
回复
什么是客户用? 是指浏览器端的用户吗? 这不是一样嘛,做个控制台程序或windows服务,在客户的计算机上装上就行了
足球中国 2012-12-16
  • 打赏
  • 举报
回复
.net做不到。
vpjian 2012-12-16
  • 打赏
  • 举报
回复
RAW Socket监听所有通信,然后自己解包。只要使用正确的编码,中文是不会出现乱码的。RAW Socket好实现,网上有很多代码,只是解包是处理比较复杂,没有现成代码,编码测试需要花很长的时间。你自己花点时间去测试和实现吧,不行的话找外包,或者等好心人帮你。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧