.NET Framework 4.6.2 및 C#을 사용하여 소켓 서버 및 클라이언트를 개발하고 있습니다.소켓 시간 초과 후 보류중인 모든 데이터를 제거하십시오.
클라이언트는 SynchronousSocketClient
입니다.
서버 클래스는 다소 비슷합니다. one.
클라이언트에서 데이터베이스를 업데이트하기 위해 데이터를 보냅니다.
서버에서 나는 저장 프로 시저를 사용하여 테이블을 업데이트하는 데이터베이스에서 작업을 수행합니다.
프로세스는 클라이언트가 데이터를 서버로 보내고 서버가 처리하고 그 결과와 함께 메시지를 다시 보냅니다.
때로는 데이터베이스 작업이 더 많은 시간을 할 때가 있습니다. 이 시간이 Socket.ReceiveTimeout
보다 큰 경우 TimeOut으로 인해 SocketException
이 표시되고 서버에서 오는 데이터를 처리하지 않습니다.
서버에서 보낸이 데이터를 처리 할 수있는 방법이 있습니까?
TimeOut 이후 서버에서 보낸 데이터에 대해 더 이상 기다리지 않고 새 데이터를 서버로 보내는 과정을 다시 시작하지만이 새로운 데이터에서 서버 결과를 읽으려고하면 이전 서버 응답을 읽으십시오.
클라이언트의 프로세스가 매우 중요하므로 서버에서 응답을 얻으려고 기다릴 수 없습니다. 데이터 처리를 계속해야합니다.