Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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

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
Java 如何在套接字连接中发送不同的数据类型_Java_Sockets_Io_Outputstream - Fatal编程技术网

Java 如何在套接字连接中发送不同的数据类型

Java 如何在套接字连接中发送不同的数据类型,java,sockets,io,outputstream,Java,Sockets,Io,Outputstream,我正在尝试制作一个客户端/套接字程序,该程序涉及从客户端向服务器发送一个字符串(以确定应该使用哪个密钥),服务器以字节形式发回一个密钥,客户端然后以字符串形式发送一个文件请求,服务器将请求的文件发送给用户,用户可以使用他们的密钥解密。 我了解密码学方面的知识,我很想知道如何区分向服务器发送字节、字符串或文件与从服务器发送的字节、字符串或文件。我知道如何发送单个流(字节、字符串或文件),但如果有任何意义的话,我找不到在一个流中发送所有这些内容的方法? 每次我想发送一个字符串时,我是否必须创建一个新

我正在尝试制作一个客户端/套接字程序,该程序涉及从客户端向服务器发送一个字符串(以确定应该使用哪个密钥),服务器以字节形式发回一个密钥,客户端然后以字符串形式发送一个文件请求,服务器将请求的文件发送给用户,用户可以使用他们的密钥解密。 我了解密码学方面的知识,我很想知道如何区分向服务器发送字节、字符串或文件与从服务器发送的字节、字符串或文件。我知道如何发送单个流(字节、字符串或文件),但如果有任何意义的话,我找不到在一个流中发送所有这些内容的方法? 每次我想发送一个字符串时,我是否必须创建一个新的流或套接字连接,然后创建一个新的流或套接字连接来发送字节,然后创建一个新的流或套接字连接来发送文件


我能查到什么资料吗?干杯

基本上,通过套接字连接发送的是一堆字节。这可以表示字符串、字符或字符串数组..等等

如果要在一个数据包中发送这些数据,则需要为每种类型的数据结构指定长度,即字符串的最大长度为1024字节,字节的最大长度为512字节…等等。这样做将使您能够破译接收端的信息


如果您没有最大大小,并且不想设置它们,那么您可以采取不同的方法,在自己的数据包中发送每个数据结构。如果你走这条路线,你需要指定数据包的第一个字节来标记接收者这是什么类型的数据;i、 e.1=字节,2=字符串,3=数组..等

我认为数据包是抽象的,所以你不一定要说你想在它自己的数据包中发送数据结构,而只是说你通过电线发送X字节的数据,并让TCP/IP堆栈处理数据包分块。我可能在这一点上错了,因为这正是C套接字的工作原理,这是一个Java问题。我给出了一个高层次的细分。在网络上,TCP/UDP和IP通常会分割数据包以及其他内容。但是,从端到端的角度来看,如果@Java Noob不喜欢我的第一个建议,我是说他可以分别发送每段数据,并向这些数据添加一个标志字节。我明白你的意思。你已经得到了我的支持票,但我只是想确保OP不会因为必须处理数据包大小而感到困惑。只是澄清一下我自己。