【问题标题】:Read data from a TCP Connection从 TCP 连接读取数据
【发布时间】:2013-06-06 02:48:40
【问题描述】:

我目前正在从事一个涉及通过 TC 协议进行数据传输的项目。

我的操作系统是 Windows 2008 R2 Enterprise。

首先,我必须承认我在网络方面是个新手。 尽管如此,我已经安装了一个网络服务器(感谢 Windows 平台和 Internet,这很容易)。

一组其他学生必须通过 TCP 连接到服务器并发送仅是字符串的数据。他们正在使用非用户友好的语言 (CC864 command)。

现在,他们可以连接到服务器,我可以看到他们正在连接(三次握手),这要归功于wireshark:http://oi44.tinypic.com/30kbs6r.jpg

我阅读了很多文档,但没有找到这个简单问题的直接答案:是否已经存在一个应用程序监听端口并在发送一些数据时从这些端口获取数据? 如果没有,我会感到惊讶。但如果没有,你建议我怎么做?例如,我看到许多网站解释了如何在 C# 中创建侦听器和接收器服务器。

问题是:奇怪的是,对于已经侦听传入连接并处理不是非常简单的请求的 Web 服务器,没有接收和保存简单的 TCP 请求......

我希望我尽可能清楚。 我为我大概的英语道歉,感谢您抽出宝贵的时间。

再见

【问题讨论】:

  • Web 服务器处理 HTTP,它是 TCP 之上的一层。您的客户是否发送 HTTP 请求?你应该处理 HTTP 还是只处理 TCP?如果是 TCP,那么 Web 服务器就帮不了你了。

标签: web tcp windows-server-2008 tcplistener


【解决方案1】:

我为我的学位论文做了一个类似的项目:

C# TCP/IP Protocol Stack for Testing Network Applications

基本上,如果您希望能够在另一个程序中侦听 TCP 通信(不使用低级(有时是未记录的)winapi 调用,我建议您学习 SharpPcap,它是 Wireshark 中使用的 WinPcap 的包装器。

您不能直接拦截 TCP 流量的原因是您当前的网络堆栈当然不容易被“嗅探”,这本质上是您正在尝试做的事情(通过尝试从网络堆栈中读取 TCP 数据) 并且 SharpPCap 内核模式驱动程序通过添加一个额外的“层”来解决这个问题,该层将数据传递到您的正常网络堆栈并允许您嗅探。

这是一个很棒的主题,很有趣(有许多现实世界的应用程序)

祝你好运,HTH

【讨论】:

  • 如果您想阅读我的论文,我确实有一份副本,其中包括 TCP/IP 流定序器,这可能是您阅读的良好开端。
  • 谢谢你的回答,我去SharpPCap看看。我认为这也是一个有趣的话题,但我的老板没有给我任何线索让我知道从哪里开始(我是实习生)。关于你的论文,我很乐意阅读。
  • @user2456624 将您的电子邮件地址收件箱给我,我将发送数字副本
  • 我不知道如何发送 pm 所以:kevin.leprin@free.fr 是我的地址之一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
  • 2018-06-28
  • 2011-02-26
  • 2014-09-15
相关资源
最近更新 更多