For i = 1 To 3
_serversocket.BeginAccept(New AsyncCallback(AddressOf AcceptCallback), _serversocket)
Next
Проблема с Асинхронным вызовом AcceptCallback
Но при попытке закрыть поступление новых соединений через _serversocket.Close()
3 заранее открытых потока из пула для асинхронного приема соединений начинают "якобы" принимать соединение.
Т.е. В начале программы создается 3 заранее открытых потока из пула для асинхронного приема соединений:
Код:
Они принимают соединения от клиентов
После _serversocket.Close() почему-то начинает работать процедура обратного вызова (AcceptCallback), хотя новых соединений нет. Соответсвенно вся программа рушится.
Как закрыть эти потоки из пула или как сделать так, чтобы они после _serversocket.Close() не мешались. Ну или как сделать защиту.
Ща пришла идея....
Код:
For i = 1 To 3
_serversocket.BeginAccept(New AsyncCallback(AddressOf AcceptCallback), _serversocket)
Next
_serversocket.BeginAccept(New AsyncCallback(AddressOf AcceptCallback), _serversocket)
Next
Запоминать каждый BeginAccept в массив, а потом как то закрыть их(отключить), но как?
Я еще завтра поламаю себе моСк, но прошу помочь:)
Используйте же наконец классы TcpListener, TcpClient и NetworkStream и заканчивайте с серверными сокетами. Это упростит вам жизнь и сохранит нервную систему. Как только сможете легко с этими классами работатать - сможете и с сокетами, уверяю.
Цитата: hardcase
Используйте же наконец классы TcpListener, TcpClient и NetworkStream и заканчивайте с серверными сокетами. Это упростит вам жизнь и сохранит нервную систему. Как только сможете легко с этими классами работатать - сможете и с сокетами, уверяю.
Отличный ответ по томе))) А не понравились мне TcpListener, TcpClient)) незнаю почему.... все сильно уж выскоуровнево))средний уроерь - Net.Sockets.Socket, ну и низки - Winsock.dll на API... Мне понравился 2 случай. Пока мне хочется с сокетами, тем более я почти все на них построил...
P.S. может ответи-те по-теме?)))
P.S. 2 : Я не люблю лёгкие лёгкости, но и не люблю сложные сложности, поэтому всегда выбираю оптимальные средние средности (c)))