예제 #1
0
 private static void Send(Socket client, Favourites data)
 {
     byte[] byteData = FavouritesHandler.ConvertFavouritesToByteArray(data);
     client.BeginSend(byteData, 0, byteData.Length, 0, new AsyncCallback(SendCallback), client);
 }
예제 #2
0
        private static void ReceiveCallback(IAsyncResult ar)
        {
            try
            {
                if (TypeOfTheInfo == TypeOfInfo.User)
                {
                    ar.AsyncWaitHandle.WaitOne(2000);
                }
                if (TypeOfTheInfo == TypeOfInfo.Comment)
                {
                    ar.AsyncWaitHandle.WaitOne(2000);
                }
                StateObject state = (StateObject)ar.AsyncState;

                Socket client = state.workSocket;

                client.EndReceive(ar);

                switch (TypeOfTheInfo)
                {
                case TypeOfInfo.Films:
                {
                    films = FilmHandler.ConvertByteArrayToFilmList(state.buffer);
                    break;
                }

                case TypeOfInfo.Cinemas:
                {
                    cinemas = CinemaHandler.ConvertByteArrayToCinemaList(state.buffer);
                    break;
                }

                case TypeOfInfo.Users:
                {
                    users = UserHandler.ConvertByteArrayToUserList(state.buffer);
                    break;
                }

                case TypeOfInfo.User:
                {
                    flagUser = false;
                    break;
                }

                case TypeOfInfo.Favourites:
                {
                    favourites = FavouritesHandler.ConvertByteArrayToFavouritesList(state.buffer);
                    break;
                }

                case TypeOfInfo.Concerts:
                {
                    concerts = ConcertHandler.ConvertByteArrayToConcertList(state.buffer);
                    break;
                }

                case TypeOfInfo.Exhibitions:
                {
                    exhibitions = ExhibitionHandler.ConvertByteArrayToExhibitionList(state.buffer);
                    break;
                }

                case TypeOfInfo.Comments:
                {
                    comments = CommentHandler.ConvertByteArrayToCommentList(state.buffer);
                    break;
                }

                case TypeOfInfo.Favourite:
                {
                    flagFavourite = false;
                    break;
                }

                case TypeOfInfo.Comment:
                {
                    flagComment = false;
                    break;
                }

                default:
                {
                    break;
                }
                }

                receiveDone.Set();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                Application application = Application.Current;
                application.Shutdown();
            }
        }