Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过套接字C连续发送数据#_C#_Sockets - Fatal编程技术网

C# 通过套接字C连续发送数据#

C# 通过套接字C连续发送数据#,c#,sockets,C#,Sockets,我已经搜索了两个多星期的样本或其他任何东西来寻找我的问题。 找到一些主题和示例,但无法使用它们… 问题是:我有一个服务器-客户机应用程序,服务器必须一直监听,客户机不断地向服务器发送图像 我已经完成了发送和完成,这意味着客户端向服务器发送1个映像,服务器接收映像,套接字将关闭 但我想连续发送图像到服务器 发现此问题: 但不能使用它们和样本 我知道基本的TCP套接字编程和线程编程的基础知识,但不能实现这一点 对不起,我的英语不好 ====编辑 实际上,一个计时器以1秒的间隔捕获了一个屏幕截图,经过

我已经搜索了两个多星期的样本或其他任何东西来寻找我的问题。 找到一些主题和示例,但无法使用它们…
问题是:我有一个服务器-客户机应用程序,服务器必须一直监听,客户机不断地向服务器发送图像

我已经完成了发送和完成,这意味着客户端向服务器发送1个映像,服务器接收映像,套接字将关闭
但我想连续发送图像到服务器
发现此问题:
但不能使用它们和样本
我知道基本的TCP套接字编程和线程编程的基础知识,但不能实现这一点
对不起,我的英语不好
====编辑
实际上,一个计时器以1秒的间隔捕获了一个屏幕截图,经过压缩处理后,这些捕获的图像被发送到服务器
它不断地发送(只是发送)
有什么样品或东西我可以用吗

谢谢。

当在套接字上发送单个消息时,您只需发送有效负载并关闭,接收者只需读取,直到套接字报告它已关闭,他们就能收到消息;很好,很简单,但它不能扩展到多条消息

您不能仅仅使用数据包布局,因为TCP是作为流协议而不是数据包协议实现的;您接收数据的方式不需要与数据包的发送方式相匹配

因此,要在TCP套接字上发送多条消息,需要实现某种帧机制。可以使用任意数量的框架机构。一种非常简单的机制可能是发送以下序列:

  • 长度(4字节,小尾数32位整数)
  • 有效负载({length}字节)
  • 长度(4字节,小尾数32位整数)
  • 有效负载({length}字节)
  • 长度(4字节,小尾数32位整数)
  • 有效负载({length}字节)
  • 长度(4字节,小尾数32位整数)
  • 有效负载({length}字节)

同样地,接收者将缓冲4个字节,解释长度,然后将多个字节作为一个帧读取;冲洗,重复。

“服务器收到图像,插座将关闭。”为什么插座关闭?您可以控制服务器代码吗?此外,如果你不提供你所写的重要代码,如果你告诉我们你不能做什么,我们就无法真正帮助你。你还没有告诉我们为什么或者问题出在哪里。毫无疑问,我们可以回答。