У меня есть C# сервер работает под Ubuntu 12.04 с использованием Mono, с помощью следующего кода:с сервером # TCP сокетов не отвечает на клиент
while (true)
{
Console.WriteLine("Socket ready...");
using (Socket handlerSocket = listenerSocket.Accept())
{
Console.WriteLine("New request...");
BackgroundWorker newBackgroundWorker = new BackgroundWorker();
byte[] buffer = new byte[1024];
Console.WriteLine("Buffer allocated...");
handlerSocket.Receive(buffer);
//newBackgroundWorker.DoWork += (s, o) =>
//{
using (Socket Sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
{
Console.WriteLine("Buffer received...");
string request = Encoding.Unicode.GetString(buffer);
Console.WriteLine("New request from : {0} /t Request : {1}", ((IPEndPoint)handlerSocket.RemoteEndPoint).Address.ToString(), request);
if (request.Contains("$GetBattleList"))
{
//Chain of if's and else's continues
//The following else if is the only case being tested
else if (request.Contains("$GetZeroBasedProfile"))
{
Console.WriteLine("Sending profile...");
Sender.Connect(handlerSocket.RemoteEndPoint); //Fails here due to not being able to reach the client application, throws a timeout exception
Sender.SendFile(_profileLocation);
}
else Console.WriteLine("Invalid request. Ignoring...");
}
}
}
Сервера способен принимать запросы клиентов, но тем не менее не в состоянии потому что он не может подключаться каждый раз. Я что-то пропустил в своем коде или что-то еще здесь работает?