У меня есть файловый сервер политики и работает. Некоторое время я получал AccessDenied, потому что файл политики не был установлен должным образом. Теперь я больше не получаю эту ошибку, поэтому я знаю, что это не проблема. У меня работает простой сервер, который просто зацикливается на приеме клиентских подключений с любого адреса. Я также написал простой клиент, поэтому я знаю, что сервер работает. В Silverlight я устанавливаю свои аргументы и затем вызываю ConnectAsync. Он немедленно возвращается на localhost (имеет смысл), и когда я проверяю аргументы событий, LastOperation - это Connect, а SocketError - это Success. Однако, когда я проверяю мою розетку, она вообще не подключается. Есть идеи..? Из-за этого часами бился головой об стену.
Несколько других вещей, которые я пробовал. Я переместил серверы с моего локального ящика на другой сервер. Все еще не работал. Я сделал захват пакета и заметил, что он получает Файл Poilcy, но после этого браузер не отправляет ни одного пакета, который пытался бы даже подключиться к другому серверу.
public void Connect(string ip)
{
SocketAsyncEventArgs saea = new SocketAsyncEventArgs();
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
var endpoint = new IPEndPoint(IPAddress.Parse(ip), 4502);
saea.UserToken = socket;
saea.RemoteEndPoint = endpoint;
saea.Completed += new EventHandler<SocketAsyncEventArgs>(AsyncEventComplete);
var completedSync = socket.ConnectAsync(saea);
if (completedSync)
{
AsyncEventComplete(null, saea);
}
Result = ip;
}
void AsyncEventComplete(object sender, SocketAsyncEventArgs e)
{
switch (e.LastOperation)
{
case SocketAsyncOperation.Connect:
MessageBox.Show("CONNECTED");
break;
case SocketAsyncOperation.Receive:
MessageBox.Show("DATA RECEIEVED");
// do stuff
break;
}
}