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#_Sockets_.net 2.0 - Fatal编程技术网

C# 套接字类在发送时中断文本

C# 套接字类在发送时中断文本,c#,sockets,.net-2.0,C#,Sockets,.net 2.0,我正在使用Socket类通过send()方法向远程服务器发送文本消息 我发送的文本没有中断: "The|string|that|is|being|sent|" 但是,远程服务器会将其作为 "The|st" "" "ring|t" "" "hat|is" "" "|being" "" "|sent|" Socket类上是否有可以防止这种情况发生的设置?这是TCP的正常行为(我假设您正在使用)-您无法真正控制数据包的碎片化方式,它只能保证数据包以相同的顺序传递 通常,应用程序发送一个终止字符(例

我正在使用
Socket
类通过send()方法向远程服务器发送文本消息

我发送的文本没有中断:

"The|string|that|is|being|sent|"
但是,远程服务器会将其作为

"The|st"
""
"ring|t"
""
"hat|is"
""
"|being"
""
"|sent|"

Socket
类上是否有可以防止这种情况发生的设置?

这是TCP的正常行为(我假设您正在使用)-您无法真正控制数据包的碎片化方式,它只能保证数据包以相同的顺序传递

通常,应用程序发送一个终止字符(例如换行符)来指示一条消息已发送,而新数据属于下一条消息


我想知道这些空字符串是从哪里来的-0字节的消息表示另一方想要关闭连接。

这是TCP的正常行为(我假设您正在使用)-您无法真正控制数据包的碎片化方式,它只能保证数据包以相同的顺序交付

通常,应用程序发送一个终止字符(例如换行符)来指示一条消息已发送,而新数据属于下一条消息


我想知道这些空字符串是从哪里来的,因为0字节的消息表示另一方想关闭连接。

简短的回答是否定的

如果使用Socket类,则需要实现接收和发送缓冲区,以及一个用于发送的线程和一个用于接收的线程(如果异步发送)

您应该将消息定义为具有开始和结束字符序列或具有已知消息大小的开始序列


TCP拆分消息是很自然的,但是数据总是以正确的顺序到达。

简短的回答是否定的

如果使用Socket类,则需要实现接收和发送缓冲区,以及一个用于发送的线程和一个用于接收的线程(如果异步发送)

您应该将消息定义为具有开始和结束字符序列或具有已知消息大小的开始序列


TCP拆分消息是很自然的,但是数据总是以正确的顺序到达。

没有看到任何代码,我猜您的缓冲区太小了。你能为请求和响应发布一些示例代码吗?没有看到任何代码,我猜你的缓冲区太小了。您可以发布一些请求和响应的示例代码吗?我不确定空字符串是否来自于一次性发送的字符串。结果表明,这是远程服务器上运行的服务的问题。把课文切碎。不是TCP at allI我不确定空字符串是否来自何处,因为字符串是一次性发送的。结果表明,这是远程服务器上运行的服务的问题。把课文切碎。根本不是TCP