As others have expressed, both strategies are valid, and if you use non-broken TCP/IP stacks on both ends, both will work just fine: TCP is guaranteed to never lose a byte, so sending requests and then parsing until you know you have full response* will work indefinitely. On the other hand, opening and closing TCP socket is not that expensive operation at all, so no problem there either. If we were discussing linux or BSD stacks, there would be no problem: they are basically bug-free.
*) if the protocol makes it difficult to detect "full reply" condition, then strategy A would be simpler.
Now if you need to use some broken code, possibly in some closed black box system which you cannot fix, things get different: then it is well possible that either one of the proposed strategies is more likely to trigger a catastrophic bug, than the other. Which one, is then matter of luck (which kind of bug is triggered exactly); so prepare to implement both strategies. Maybe the internal state is corrupted every now and then; then fresh connection each time is better. Or maybe closing socket does not release all the resources, and memory (or some other resource) runs out after 1000 sockets. Then a single socket strategy would easily offer uptime of years, single-use sockets would run out in hours.
We are currently having pretty bad times with a (Western, well-known) brand hybrid solar inverter which implements MODBUS TCP, but they stop working and start timeouting when trying to open a socket, randomly after a few days to few weeks, so that end customers need to reboot them. There's not much we can do about it, except try to figure out if some specific use pattern we do is more likely to trigger the bug, plus discuss with the manufacturer and hope they can fix their thing, but then again our customers complain to us and our partners installing those inverters so we can't just say "oh, you bought a faulty inverter" after they made >10000EUR investment.
This hurdle has taught us stuff like MODBUS TCP has been a big mistake. Compared to e.g. RS485 based Modbus RTU, it's a huge security issue because in practice, it always will connect to the internet; the fallacy of "safe internal network" was not well understood in 1990's. And then, it adds a lot of extra complexity by requiring TCP/IP stack, which would be easy-peasy if the devices were general purpose computers with auto-upgradeable general purpose operating system (like linux or BSD or even Windows CE or something like that), but they are not, instead they run any random TCP/IP stack quickly cobbled together and tested in lab conditions. What's worst, embedded device manufacturers who are not exactly specialized in IoT (like solar inverter manufacturers) have no incentive to really fix bugs and offer firmware updates.