Ejemplo n.º 1
0
        private void buttonAsyncClientFileSend_Click(object sender, EventArgs e)
        {
            AsyncClientObject ao = new AsyncClientObject(1);
            ao.buffer = Encoding.UTF8.GetBytes("AsyncFileTrans/");
            ao.workSocket = socketConAsyncClient;

            if (fileWorkClientAcceptSocket != null)
            {
                if (!fileWorkClientAcceptSocket.IsBound)
                {
                    asyncCbClientFileAccept = new AsyncCallback(AsyncHandleClientFileAccept);
                    asyncCbClientFileSend = new AsyncCallback(AsyncHandleClientFileSend);
                    asyncCbClientFileRecv = new AsyncCallback(AsyncHandleClientFileRecv);

                    fileWorkClientAcceptSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    fileWorkClientAcceptSocket.Bind(new IPEndPoint(IPAddress.Parse(labelAsyncClient2.Text), 8889));
                    fileWorkClientAcceptSocket.Listen(5);
                    fileWorkClientAcceptSocket.BeginAccept(asyncCbClientFileAccept, null);
                }

            }
            else
            {
                asyncCbClientFileAccept = new AsyncCallback(AsyncHandleClientFileAccept);
                asyncCbClientFileSend = new AsyncCallback(AsyncHandleClientFileSend);
                asyncCbClientFileRecv = new AsyncCallback(AsyncHandleClientFileRecv);

                fileWorkClientAcceptSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                fileWorkClientAcceptSocket.Bind(new IPEndPoint(IPAddress.Parse(labelAsyncClient2.Text), 8889));
                fileWorkClientAcceptSocket.Listen(5);
                fileWorkClientAcceptSocket.BeginAccept(asyncCbClientFileAccept, null);
            }
            buttonAsyncClientFileSend.Enabled = false;
            socketConAsyncClient.BeginSend(ao.buffer, 0, ao.buffer.Length, SocketFlags.None, asyncCbClientSend, ao);
        }
Ejemplo n.º 2
0
        private void AsyncHandleClientImageAccept(IAsyncResult ar)
        {
            ImageAsyncClientAccepttSocket = ImageAsyncClientAccepttSocket.EndAccept(ar);

            IPEndPoint ipEPAcceptClient = (IPEndPoint)ImageAsyncClientAccepttSocket.RemoteEndPoint;

            if (ImageAsyncClientAccepttSocket.Connected)
                listBoxAsyncClient.Items.Add(ipEPAcceptClient.Address + "에서 이미지서버 접속함.");

            listBoxAsyncClient.SelectedIndex = listBoxAsyncClient.Items.Count - 1;
            AsyncClientObject ao = new AsyncClientObject(4096);
            ao.workSocket = ImageAsyncClientAccepttSocket;

            ImageAsyncClientAccepttSocket.BeginReceive(ao.buffer, 0, ao.buffer.Length, SocketFlags.None, asyncCbClientImageReceive, ao);
        }
Ejemplo n.º 3
0
        private void AsyncHandleClientImageConnect(IAsyncResult ar)
        {
            Socket sock = (Socket)ar.AsyncState;
            try
            {
                sock.EndConnect(ar);

                if (sock.Connected)
                {
                    AsyncClientObject ao = new AsyncClientObject(4096);
                    ao.workSocket = sock;
                    listBoxAsyncClient.Items.Add("이미지서버 접속 완료");
                    listBoxAsyncClient.SelectedIndex = listBoxAsyncClient.Items.Count - 1;
                    sock.BeginReceive(ao.buffer, 0, ao.buffer.Length, SocketFlags.None, asyncCbClientImageReceive, ao);
                }
                else
                {
                    sock.Close();
                }
            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.Message);
            }
        }
Ejemplo n.º 4
0
        private void AsyncHandleClientFileAccept(IAsyncResult ar)
        {
            fileWorkClientAcceptSocket = fileWorkClientAcceptSocket.EndAccept(ar);

            IPEndPoint ipEPAcceptClient = (IPEndPoint)fileWorkClientAcceptSocket.RemoteEndPoint;
            listBoxAsyncClient.Items.Add(ipEPAcceptClient.Address + "에서 파일서버 접속함.");
            listBoxAsyncClient.SelectedIndex = listBoxAsyncClient.Items.Count - 1;
            AsyncClientObject ao = new AsyncClientObject(4096);
            ao.workSocket = fileWorkClientAcceptSocket;

            fileWorkClientAcceptSocket.BeginReceive(ao.buffer, 0, ao.buffer.Length, SocketFlags.None, asyncCbClientFileRecv, ao);
        }
Ejemplo n.º 5
0
        private void AsyncHandleClientConnect(IAsyncResult ar)
        {
            Socket sock = (Socket)ar.AsyncState;
            try
            {
                sock.EndConnect(ar);

                if (sock.Connected)
                {
                    AsyncClientObject ao = new AsyncClientObject(4096);
                    ao.workSocket = sock;
                    sock.BeginReceive(ao.buffer, 0, ao.buffer.Length, SocketFlags.None, asyncCbClientrecv, ao);
                    listBoxAsyncClient.Items.Add("서버에 연결되었습니다.");

                    buttonAsyncClientConnect.Enabled = false;
                    buttonAsyncClientFileSend.Enabled = true;
                    buttonAsyncClientSend.Enabled = true;
                    buttonAsyncClientSendPicture.Enabled = true;
                }
                else
                {
                    listBoxAsyncClient.Items.Add("연결에 실패하였습니다.");
                    sock.Close();
                }
            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.Message);
            }
            listBoxAsyncClient.SelectedIndex = listBoxAsyncClient.Items.Count - 1;
        }
Ejemplo n.º 6
0
        public void AsyncClientSendImage()
        {
            byte[] btImage = msPictureAsyncClient.ToArray();
            AsyncClientObject ao2 = new AsyncClientObject(1);

            ao2.workSocket = ImageAsyncClientAccepttSocket;

            ao2.buffer = btImage;
            Thread.Sleep(100);
            ImageAsyncClientAccepttSocket.Send(ao2.buffer);
            buttonAsyncClientSendPicture.Enabled = true;
            //if(ImageAsyncClientAccepttSocket.Connected)
            //{
            //    ImageAsyncClientAccepttSocket.BeginSend(ao2.buffer, 0, ao2.buffer.Length, SocketFlags.None, asyncCbClientImageSend, ao2);
            //}
            //else
            //{
            //    listBoxAsyncClient.Items.Add("재시도중. . .");
            //    AsyncClientSendImage();
            //}
        }
Ejemplo n.º 7
0
        private void buttonAsyncClientSend_Click(object sender, EventArgs e)
        {
            AsyncClientObject ao = new AsyncClientObject(1);

            ao.buffer = Encoding.UTF8.GetBytes("클라이언트(비동기) : " + textBoxAsyncClientSend.Text);

            textBoxAsyncClientSend.Text = "";
            ao.workSocket = socketConAsyncClient;
            socketConAsyncClient.BeginSend(ao.buffer, 0, ao.buffer.Length, SocketFlags.None, asyncCbClientSend, ao);
        }
Ejemplo n.º 8
0
        private void buttonAsyncClientSendPicture_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "이미지|*.png;*.jpg;*.jpeg;*.bmp;*.gif;*.psd";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                pictureBoxAsyncClient.Image = Bitmap.FromFile(openFileDialog1.FileName);

                if (msPictureAsyncClient != null)
                {
                    msPictureAsyncClient.Close();
                    msPictureAsyncClient.Dispose();
                }
                msPictureAsyncClient = new MemoryStream();
                pictureBoxAsyncClient.Image.Save(msPictureAsyncClient, System.Drawing.Imaging.ImageFormat.Png);

                AsyncClientObject ao = new AsyncClientObject(1);
                ao.buffer = Encoding.UTF8.GetBytes("ImageSend/" + msPictureAsyncClient.Length + "/");
                ao.workSocket = socketConAsyncClient;

                if (ImageAsyncClientAccepttSocket != null)
                {
                    if (!ImageAsyncClientAccepttSocket.IsBound)
                    {
                        asyncCbClientImageAccept = new AsyncCallback(AsyncHandleClientImageAccept);
                        asyncCbClientImageSend = new AsyncCallback(AsyncHandleClientImageSend);
                        asyncCbClientImageReceive = new AsyncCallback(AsyncHandleClientImageReceive);

                        ImageAsyncClientAccepttSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                        ImageAsyncClientAccepttSocket.Bind(new IPEndPoint(IPAddress.Parse(labelAsyncClient2.Text), 7879));
                        ImageAsyncClientAccepttSocket.Listen(5);
                        ImageAsyncClientAccepttSocket.BeginAccept(asyncCbClientImageAccept, null);
                    }
                }
                else
                {
                    asyncCbClientImageAccept = new AsyncCallback(AsyncHandleClientImageAccept);
                    asyncCbClientImageSend = new AsyncCallback(AsyncHandleClientImageSend);
                    asyncCbClientImageReceive = new AsyncCallback(AsyncHandleClientImageReceive);

                    ImageAsyncClientAccepttSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    ImageAsyncClientAccepttSocket.Bind(new IPEndPoint(IPAddress.Parse(labelAsyncClient2.Text), 7879));
                    ImageAsyncClientAccepttSocket.Listen(5);
                    ImageAsyncClientAccepttSocket.BeginAccept(asyncCbClientImageAccept, null);
                }

                socketConAsyncClient.BeginSend(ao.buffer, 0, ao.buffer.Length, SocketFlags.None, asyncCbClientSend, ao);
                openFileDialog1.Dispose();
            }
            else
            {
                openFileDialog1.Dispose();
            }
        }