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

时间:2015-02-11 21:21:46

标签: java sockets io outputstream

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

我可以查找的任何资源?干杯!

1 个答案:

答案 0 :(得分:2)

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

如果要在一个数据包中发送全部数据,则需要为每种类型的数据结构指定长度,即字符串最大为1024字节,字节最大为512字节......等。这样做可以让您解密接收端的信息。

如果您没有最大尺寸而又不想设置它们,那么您可以采用不同的方法并将每个数据结构发送到自己的数据包中。如果采用这种方法,则需要指定数据包的第一个字节,以便向接收器标记这是什么类型的数据;即1 =字节,2 =字符串,3 = array..etc