Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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
每次连接后是否必须重新创建Java TCP流?_Java_Java Me - Fatal编程技术网

每次连接后是否必须重新创建Java TCP流?

每次连接后是否必须重新创建Java TCP流?,java,java-me,Java,Java Me,我正在开发一个J2ME应用程序,但很可能J2SE中的套接字行为类似,几乎没有人在使用J2ME,因此我认为有必要了解J2SE是如何实现的。 当我发送一条TCP消息,然后收到一个响应时,我是否应该无法继续使用上一条发送的消息中的流?我必须破坏以前的连接并创建新的连接吗?TCP基于流概念,而不是消息概念。“发送TCP消息”是什么意思?您是否向流中写入一条消息并关闭流?TCP发送的段中,每个字节都有一个隐式序列号,以便在发送前对段进行部分确认和重新排序。TCP连接不会被保留并传递到目标主机内的其他应用程

我正在开发一个J2ME应用程序,但很可能J2SE中的套接字行为类似,几乎没有人在使用J2ME,因此我认为有必要了解J2SE是如何实现的。

当我发送一条TCP消息,然后收到一个响应时,我是否应该无法继续使用上一条发送的消息中的流?我必须破坏以前的连接并创建新的连接吗?

TCP基于流概念,而不是消息概念。“发送TCP消息”是什么意思?您是否向流中写入一条消息并关闭流?TCP发送的段中,每个字节都有一个隐式序列号,以便在发送前对段进行部分确认和重新排序。TCP连接不会被保留并传递到目标主机内的其他应用程序。因此,将为新连接创建新的TCP套接字。这并不意味着单个TCP连接不能持续数小时。这完全取决于应用程序的要求。@Joni我的意思是,如果我向服务器发送了一些东西,然后服务器响应,在我读取响应后,我是否应该放弃连接?实际上,在我尝试发送更多东西后,我的连接似乎就消失了,我不确定发生了什么。“我应该放弃连接吗?”这完全取决于您以及您如何设计通信协议。如果协议的设计允许发送多个请求和接收多个响应,而不存在相互碰撞的危险,那么您完全可以重用连接。前提是您完成了数据的发送和接收。但你想开多久就开多久。例如,BGP TCP连接可以无限期地保持建立状态。TCP基于流概念,而不是消息概念。“发送TCP消息”是什么意思?您是否向流中写入一条消息并关闭流?TCP发送的段中,每个字节都有一个隐式序列号,以便在发送前对段进行部分确认和重新排序。TCP连接不会被保留并传递到目标主机内的其他应用程序。因此,将为新连接创建新的TCP套接字。这并不意味着单个TCP连接不能持续数小时。这完全取决于应用程序的要求。@Joni我的意思是,如果我向服务器发送了一些东西,然后服务器响应,在我读取响应后,我是否应该放弃连接?实际上,在我尝试发送更多东西后,我的连接似乎就消失了,我不确定发生了什么。“我应该放弃连接吗?”这完全取决于您以及您如何设计通信协议。如果协议的设计允许发送多个请求和接收多个响应,而不存在相互碰撞的危险,那么您完全可以重用连接。前提是您完成了数据的发送和接收。但你想开多久就开多久。例如,BGP TCP连接可以无限期地保持建立状态。