Я получаю эту ошибку непрерывно, и я считаю, что я сузил свою проблему до того, что у меня есть using a 32-bit слушатель на 64-битной машине. Есть ли способ заставить это работать на 64-битной системе?Недопустимый аргумент, переданный в прослушиватель сокетов
18 Socket sListener;
...
34 permission = new SocketPermission(NetworkAccess.Accept, TransportType.Tcp, "", SocketPermission.AllPorts);
36 //Listening Socket object
37 sListener = null;
39 //Ensure the code has permission to access the Socket
40 permission.Demand();
42 IPHostEntry ipHost = Dns.GetHostEntry("");
43 IPAddress ipAddress = ipHost.AddressList[2];
44 ipEndPoint = new IPEndPoint(ipAddress, 4510);
46 sListener = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
...
71 sListener.Listen(10);
72
73 //Begins an asynchronous operation to accept an attempt
74 AsyncCallback aCallback = new AsyncCallback(AcceptCallback);
75 sListener.BeginAccept(aCallback, sListener);
Я пытался следовать код в этом relevant вопрос, но он дал мне ошибку:
Operator '==' cannot be applied to operands of type 'System.Net.Sockets.AddressFamily' and 'string'
в коде я не нашел что-либо отношение к '' == –
За ошибки в коде вы получили от соответствующего вопроса, AddressFamily этого перечисления. Попробуйте '== AddressFamily.InterNetwork' вместо' == "InterNetwork" ' – Geoff