Существующий сценарий объясняется ниже.TCP-соединение через CAsyncSocket не работает: onConnect никогда не вызывал
Наше приложение работает на архитектуре клиентского сервера; Клиент разработан с помощью VC++, а Server - с C#.
На стороне сервера работают два exe (приложение myServer1.exe -Windows и приложение myServer2.exe -Windows). myServer2.exe связывается с myServer1.exe через соединение сокетов TCP.
На стороне клиента exe (myApp1.exe -Windows Service based) запускает другой exe на основе пользовательских сеансов, присутствующих на машине (myUser.exe для всех пользовательских сеансов). Каждый экземпляр myUser.exe связывается с myApp1.exe через PIPE-связь. И myApp1.exe также связывается с myServer1.exe через другую TCP-связь.
Новый сценарий.
Теперь мы создаем сокет TCP в режиме прослушивания в myServer2.exe (приложение-сервер -C#). myUser.exe (клиентское приложение -VC++) пытается подключиться к myServer2.exe через TCP-соединение, используя CAsyncSocket
. Но рамки вызовов (OnConnect
, OnReceive
и OnClose
) не происходят.
Create(0,SOCK_STREAM); // CAyncSocket
Socket creation-
сокета Соединения- Connect("ServerIP", "ServerPort"); // CAsyncSocket
Примечание: когда мы перемещаем функциональные возможности создания сокета и подключения в Windows, сервис на базе ехе (myApp1.exe), соединение работает нормально, OnConnect OnReceive и OnClose происходят.
Почему фреймворк для OnConnect не происходит в myUser.exe, в то время как в myApp1.exe есть?
поэтому в основном, у вас есть приложение # Windows Server C и клиентов многие VC++, и вы хотите, чтобы общаться через TCP не так ли? Поделитесь некоторым кодом – salvolds
На данный момент связь между сервером и клиентами работает нормально. Проблема в том, что я хочу создать сокет в myUser.exe с режимом отправки, и myServer2.exe будет слушать его. Но функции уведомления (Onconnect, OnSend и т. Д.) На myUser.exe (VC++) не происходит , Всегда получать ошибку сокета 10035 (операция должна быть удалена позже).Но мы несколько раз пробовали и все еще получали ту же ошибку. Таким образом, «CAsyncSocket :: Connect» всегда терпит неудачу. –