a question about Client/Server programming in Unity

Hello everyone! In my project, I need to connect a windows forms app to a unity server to send commond. But I met following problems:

  1. I found that the network function in unity can not work here, so I chose .Net TcpClient/TcpServer. It worked, but when I loaded another scene, it stoped until I closed unity in task manager of windows. Do you met this situation before?If so, is it means that Using .Net Network function is not a good way for my program?

  2. Then I try to program with Socket. It worked fine when loading new scene. But I found after connecting with server, the windows forms app cannot send massage successfully. The code that receive data in unity was started in a new thread and run in when(true). Is it a right way to wait the data? or Is there any better way to do that?

Please give me some advice if it is convenint. I will post my code when I am in my work place. So happy to discuss with you about programming in Unity.

Thank you very much!

As whydoidoit commented (answered? :)), it is likely that your objects that receive the data got destroyed. Also you should be careful with threads. Unitys API is not thread safe for the a lot cases and you should take care to process Unity calls in the main thread - so you might need to perform some synchronization depending on what you’re doing.

Sockets are expected to work. Please ensure that your objects aren’t destroyed DontDestroyOnLoad(gameObject); is hopefully all you need to do. Threads are also supported, but it is easy to make mistakes, accessing Unity from a user thread or callback thread for example.