通过tcpclient c#读取连接到tcplistener的HttpWebrequest写入的数据#

Read data written by HttpWebrequest connected to tcplistener via tcpclient c#

我在读取从客户端发布到服务器的数据时遇到了一些问题。
解释服务器代码 我创建了一个 TCP 侦听器,它会在一段时间内循环侦听任何客户端。 即,通过以下代码

    listener = new TcpListener("127.0.0.1",3148);
    TcpClient client = listener.AcceptTcpClient();//This code is called\hit when HttpWebrequest.GetrequestStream is called.

但是当我执行 Client.GetStream() 时 - 我没有在其中获取任何数据。 即,NetworkStream stream = Client.GetStream() - 网络流中没有可用数据

这是客户端代码:

  Webrequest request = (HttpWebrequest)Webrequest.Create("http://127.0.0.1:3148/MovieData") ;
  NetworkStream stream = request.GetRequestStream()

 string Header = "\r\n Content-Type:MovieData \r\n";
 byte[] headerbyte = Encoding.UTF8.GetBytes(header);
 stream.Write(headerbyte,0,headerbyte.Length);
 stream.close();

我在这里遗漏了什么吗,我的实现中在概念上是否遗漏了什么。 服务器和客户端连接到相同的端口和主机,但是写入客户端网络流的数据无法被服务器读取。

除非这些是自定义的 类 像这样更改拼写。

来自这里:

Webrequest request = (HttpWebrequest)Webrequest.Create("http://127.0.0.1:3148/MovieData")

为此:

WebRequest request = (HttpWebRequest)WebRequest.Create("http://127.0.0.1:3148/MovieData")

如果您打算在客户端和服务器之间通过 tcp 进行通信,请尝试仅使用 tcpClient 而不是 WebRequest。 Here and Here 是关于如何实现它的一些示例。

您似乎打开了一个 tcp 套接字并尝试使用 Http 连接到它。而是尝试像这样使用 tcp 连接到您的 tcp 套接字:

TcpClient tcpclnt = new TcpClient();
tcpclnt.Connect("http://127.0.0.1", 3148);

然后您将使用 tcpclnt 在客户端和服务器之间发送和接收数据

Here 是关于 tcpclnt.Connect() 如何运作的 link