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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Sockets 使用套接字连接时破译对象的类型有多常见?_Sockets_Connection - Fatal编程技术网

Sockets 使用套接字连接时破译对象的类型有多常见?

Sockets 使用套接字连接时破译对象的类型有多常见?,sockets,connection,Sockets,Connection,我正在做一个文字游戏来练习。我现在正在构建一个俯视图,它只显示了你在世界上所处位置的地形类型。我问这个问题的原因是,我将通过socket/serversocket将文本和缓冲区图像发送到连接到服务器的多个客户端。现在,通过不同的端口建立两个完全不同的套接字连接来分割我的文本回复和对不同客户端的BuffereImage回复是愚蠢的,还是在决定从objectinputstream读取时如何处理对象之前破译对象是很常见的?破译对象类型将允许我只使用一个serversocket连接,我只是不知道这是多么

我正在做一个文字游戏来练习。我现在正在构建一个俯视图,它只显示了你在世界上所处位置的地形类型。我问这个问题的原因是,我将通过socket/serversocket将文本和缓冲区图像发送到连接到服务器的多个客户端。现在,通过不同的端口建立两个完全不同的套接字连接来分割我的文本回复和对不同客户端的BuffereImage回复是愚蠢的,还是在决定从objectinputstream读取时如何处理对象之前破译对象是很常见的?破译对象类型将允许我只使用一个serversocket连接,我只是不知道这是多么正确/实用/良好的做法。我也不知道发送BuffereImage对象是否会导致从服务器及时接收文本回复时出现问题。BuffereImage对象的大小约为31x31像素,非常小,但在标准数组[]类型中,一次最多发送9个。事实上,我甚至可以说,对于任何非平凡的远程交互,这都是必需的。唯一的问题是,您希望如何向套接字连接另一端的程序传递类型信息;有很多方法可以做到这一点,从简单的(首先发送一个类型代码整数,告诉接收者下一步需要什么样的数据)一直到成熟的对象序列化协议(如JSON、XML、Google协议缓冲区等).

让接收者通过在if语句中执行Object.getClass()比较来处理它,从而根据哪个比较结果为真来决定要做什么,这是多么令人不快啊?不过,我认为这与您的类型代码整数想法是一样的。