c#获取套接字通过浏览器发送的表单数据,有时套接字会关闭。为什么?

Hamed_gibago

我让网络服务器通过异步套接字接收数据:

var e = new SocketAsyncEventArgs();
            e.Completed += new EventHandler<SocketAsyncEventArgs>(e_Completed);

 while (true)
                { allDone.Reset();
                    mySocket.AcceptAsync(e);
                    allDone.WaitOne();
                }

另一种方法:

    public void e_Completed(object sender, SocketAsyncEventArgs e)
    {
        var socket = (Socket)sender;
        ThreadPool.QueueUserWorkItem(handleTcpRequest, e.AcceptSocket);
        e.AcceptSocket = null;
        socket.AcceptAsync(e);
    }

这是handleTcpRequest方法。在这一部分中,我从套接字接收数据并执行操作:

public void handleTcpRequest(object state)
{
   string sBuffer = "";
   string BufferTotal = "";
   byte[] secureMessage;
   Byte[] bReceive = new Byte[1024];
   var mySocket = (Socket)state;
            do
            {


                  try
                  {
                    firstBufferRead = mySocket.Receive(bReceive, bReceive.Length, 0);
                  }
                  catch (Exception ex)
                  {
                    Console.WriteLine("Error Occurred (:))) " + ex.Message);
                  }

                sBuffer += Encoding.GetEncoding(1252).GetString(bReceive, 0, firstBufferRead);
                BufferTotal += Encoding.UTF8.GetString(bReceive, 0, firstBufferRead);
            } while (mySocket.Available != 0);
.
.
.
.
mySocket.Close();
}

怎么了?有时,连接会重置并关闭。当距离较远或发布数据不是多部分时,会发生这种情况。但是很少发生。形式不多的内容。我应该在何时何地关闭插座?当我在handleTcpRequest方法中使用套接字本地时。不对吗 我找不到问题的根源

贾高芬

知道您已收到HTTP请求中所有内容的唯一方法是了解HTTP请求。要了解HTTP请求,您必须选择:

  1. 使用完整的HTTP服务器
  2. 创建一个HTTP解析器

您的代码无法处理多部分数据的原因可能是因为另一方一次发送了一个部分,这意味着您的代码设法mySocket.Available != 0在发送其余部分之前执行了一个操作

如果要使用后者,则必须阅读HTTP标头(格式为headerName: headervalue,请注意,还必须考虑空白规则)。搜索一个名为的标头content-length,将其值解析为整数。然后在一行中等待两个换行(\r\n\r\n)。最后开始计数字节,直到您收到content-length标头中指定的字节数为止

哦..还有更多的事情..向Transfer-Encoding: Chunked没有被使用的上帝祈祷

我的建议是您直接放弃使用套接字,因为您似乎不了解套接字如何工作或如何对其进行研究。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

c#获取套接字通过浏览器发送的表单数据,有时套接字会关闭。为什么?

来自分类Dev

通过套接字写入发送时,为什么客户端浏览器中没有显示图像?

来自分类Dev

通过套接字将数据从浏览器发送到C#/ Java

来自分类Dev

通过套接字将数据从浏览器发送到C#/ Java

来自分类Dev

通过套接字发送图片文件时,为什么字节有所不同?

来自分类Dev

为什么我的程序没有通过套接字发送键盘数据?

来自分类Dev

C#所有套接字关闭

来自分类Dev

C#所有套接字关闭

来自分类Dev

为什么当我使用“ control-c”关闭发送对等端上的套接字时,接收对等端上的套接字保持无限接收”

来自分类Dev

关闭套接字会关闭流吗?

来自分类Dev

在服务器套接字C#中获取有关客户端的数据

来自分类Dev

发送数据后,JMeter TCP Sampler不会关闭套接字

来自分类Dev

发送数据后,JMeter TCP Sampler不会关闭套接字

来自分类Dev

为什么我无法通过此套接字发送文本?

来自分类Dev

我在通过套接字向服务器发送文件数据时得到了一些垃圾值?为什么?

来自分类Dev

C ++ Windows套接字-在程序退出时关闭套接字

来自分类Dev

为什么我的服务器PrintWriter.println()无法通过套接字发送其消息?

来自分类Dev

套接字-UDP通过Internet发送数据

来自分类Dev

通过套接字发送数据异常中止

来自分类Dev

通过UDP套接字发送数据

来自分类Dev

通过套接字发送数据异常中止

来自分类Dev

如何在C#中通过套接字发送文件

来自分类Dev

通过套接字从 Java 程序向 C 程序发送数据

来自分类Dev

c-套接字,为什么ip以整数格式发送?

来自分类Dev

为什么我的套接字没有在服务器端关闭?

来自分类Dev

C#套接字如何知道何时发送某些数据

来自分类Dev

C#套接字编程,关闭窗口

来自分类Dev

通过C#中的TCP套接字方法发送位类型数据

来自分类Dev

浏览器在完全下载响应之前关闭套接字

Related 相关文章

  1. 1

    c#获取套接字通过浏览器发送的表单数据,有时套接字会关闭。为什么?

  2. 2

    通过套接字写入发送时,为什么客户端浏览器中没有显示图像?

  3. 3

    通过套接字将数据从浏览器发送到C#/ Java

  4. 4

    通过套接字将数据从浏览器发送到C#/ Java

  5. 5

    通过套接字发送图片文件时,为什么字节有所不同?

  6. 6

    为什么我的程序没有通过套接字发送键盘数据?

  7. 7

    C#所有套接字关闭

  8. 8

    C#所有套接字关闭

  9. 9

    为什么当我使用“ control-c”关闭发送对等端上的套接字时,接收对等端上的套接字保持无限接收”

  10. 10

    关闭套接字会关闭流吗?

  11. 11

    在服务器套接字C#中获取有关客户端的数据

  12. 12

    发送数据后,JMeter TCP Sampler不会关闭套接字

  13. 13

    发送数据后,JMeter TCP Sampler不会关闭套接字

  14. 14

    为什么我无法通过此套接字发送文本?

  15. 15

    我在通过套接字向服务器发送文件数据时得到了一些垃圾值?为什么?

  16. 16

    C ++ Windows套接字-在程序退出时关闭套接字

  17. 17

    为什么我的服务器PrintWriter.println()无法通过套接字发送其消息?

  18. 18

    套接字-UDP通过Internet发送数据

  19. 19

    通过套接字发送数据异常中止

  20. 20

    通过UDP套接字发送数据

  21. 21

    通过套接字发送数据异常中止

  22. 22

    如何在C#中通过套接字发送文件

  23. 23

    通过套接字从 Java 程序向 C 程序发送数据

  24. 24

    c-套接字,为什么ip以整数格式发送?

  25. 25

    为什么我的套接字没有在服务器端关闭?

  26. 26

    C#套接字如何知道何时发送某些数据

  27. 27

    C#套接字编程,关闭窗口

  28. 28

    通过C#中的TCP套接字方法发送位类型数据

  29. 29

    浏览器在完全下载响应之前关闭套接字

热门标签

归档