private static void RecievePicture(Socket client, Connection connection, String data) { //lock (photoLocker) //{ ILog log; try { FileProtocol fileProtocol = new FileProtocol(client); var fileName = fileProtocol.ReceiveFile(Server.pictureCount + ""); Server.pictureCount++; connection.User.UploadPicture(fileName, data); log = new Info(); log.User = connection.User.Name; log.Message = "Usuario sube nueva foto"; } catch { log = new Error(); log.User = connection.User.Name; log.Message = "Error subiendo foto"; } Server.GetInstance().LogAction(log); //} }
public static void ClientHandler(Socket clientSocket) { var id = Interlocked.Add(ref Server.clientNumber, 1); bool isConnected = true; User connectedUser = null; Console.WriteLine("Conectado al cliente " + id); while (isConnected) { try { Message message = MessageProtocol.ReceiveMessage(clientSocket); switch (message.Header.ICommand) { case CommandConstants.Login: try { if (UserExist(message.MessageText)) { connectedUser = SearchUser(message.MessageText); } } catch (Exception) { } break; case CommandConstants.Register: RegisterLogic(message.MessageText, clientSocket); break; case CommandConstants.ListUsers: string listUsers = ShowUsers(); Message serverMessage = new Message(HeaderConstants.Response, CommandConstants.ListUsers, listUsers); MessageProtocol.SendMessage(clientSocket, serverMessage); break; case CommandConstants.UploadFile: try { FileProtocol fp = new FileProtocol(clientSocket); string fileName = fp.ReceiveFile(); connectedUser.PhotoList.Add(new Photo(fileName)); Message uploadMessage = new Message(HeaderConstants.Response, CommandConstants.UploadFile, "Foto recibida"); MessageProtocol.SendMessage(clientSocket, uploadMessage); } catch (Exception) { } break; case CommandConstants.UserLogged: if (connectedUser != null) { Message authMessage = new Message(HeaderConstants.Response, CommandConstants.UserLogged); MessageProtocol.SendMessage(clientSocket, authMessage); } else { Message authMessage = new Message(HeaderConstants.Response, CommandConstants.UserNotLogged); MessageProtocol.SendMessage(clientSocket, authMessage); } break; case CommandConstants.ListUserPhotos: try { string userName = message.MessageText; string fileresponse = ""; if (!UserExist(userName)) { fileresponse = "Usuario invalido"; } else { fileresponse = SearchUser(userName).showUserPhotos(); } Message filesMessage = new Message(HeaderConstants.Response, CommandConstants.ListUserPhotos, fileresponse); MessageProtocol.SendMessage(clientSocket, filesMessage); } catch (Exception) { } break; case CommandConstants.CommentPhoto: try { string photoName = message.MessageText; string fileresponse = ""; Photo commentedPhoto = SearchPhoto(connectedUser, photoName); if (!PhotoExist(connectedUser, photoName)) { fileresponse = "Foto invalida"; } else { fileresponse = SearchPhoto(connectedUser, photoName).showComments(); } Message commentMessage = new Message(HeaderConstants.Response, CommandConstants.CommentPhoto, fileresponse); MessageProtocol.SendMessage(clientSocket, commentMessage); } catch (Exception) { throw; } break; case CommandConstants.UserNotLogged: connectedUser = null; break; default: break; } } catch (Exception) { isConnected = false; } } }