Esempio n. 1
0
        private void CloseButton_Click(object sender, RoutedEventArgs e)
        {
            lock (locker)
            {
                if (client != null)
                {
                    if (client.Connected)
                    {
                        client?.GetStream()?.Close();
                    }
                    client?.Close();
                    client = null;
                }

                connectToMainServerThread?.Abort();
                connectToMainServerThread = null;

                ListHolder.DownloadableFiles.Clear();
                ListHolder.UpdateList();

                MessageBox.Show("Client close", "Close");
            }
        }
Esempio n. 2
0
        private void btnConnect_Click(object sender, EventArgs e)
        {
            string rawData = "Hola mundo";
            String data = stringToHexa(rawData);
            Console.WriteLine(data);

            try
            {
                client = new TcpClient(txtConnect.Text, 2000);
                ns = client.GetStream();
                sr = new StreamReader(ns);
                sw = new StreamWriter(ns);
           

             //   DelegadoRespuesta dr = new DelegadoRespuesta(EscribirFormulario);
             //   Invoke(dr);

            }
            catch (Exception err)
            {
                Console.WriteLine(err.ToString());
                throw;
            }
        }
Esempio n. 3
0
        private void ReceiveFile(object o)
        {
            User user = (User)o;

            string[] content = user.photo.Split(',');
            try
            {
                TcpClient fClient = new TcpClient(content[1], int.Parse(content[2]));
                //Format localIP,port,nickname,filename,length
                bool ok = false;
                if (MessageBox.Show(string.Format("是否接收文件{0}?", content[4]), string.Format("来自{0}的文件请求", content[3]), MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
                {
                    //选择文件保存路径
                    string         localFilePath = "D:\\";
                    SaveFileDialog sfd           = new SaveFileDialog();
                    sfd.RestoreDirectory = true;
                    sfd.InitialDirectory = localFilePath;
                    sfd.FileName         = content[4];
                    if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        localFilePath = sfd.FileName.ToString(); //获得文件路径

                        SendMessage(fClient, "ok");
                        ok = true;
                        //接受文件
                        int          fileLength = int.Parse(content[5]);
                        byte[]       heByte     = new byte[fileLength];
                        BinaryReader br         = new BinaryReader(fClient.GetStream());
                        BinaryWriter bw         = new BinaryWriter(fClient.GetStream());
                        br.Read(heByte, 0, fileLength);

                        //传输完成
                        bw.Write("success");
                        bw.Flush();

                        //写文件
                        using (FileStream fs = new FileStream(localFilePath, FileMode.Create))
                        {
                            fs.Write(heByte, 0, fileLength);
                        }

                        user.form.AddItemToListBox1("接受文件成功");
                    }
                    else
                    {
                    }
                }
                else
                {
                }
                if (ok == false)
                {
                    //拒绝传文件请求
                    SendMessage(fClient, "cancle");
                    user.form.AddItemToListBox1("已取消文件传输");
                }
            }
            catch
            {
                user.form.AddItemToListBox1("传输文件发送未知错误");
            }
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            List <string> localCerts = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.pfx").ToList();

            if (localCerts.Count > 0)
            {
                Console.WriteLine("Which certificate to use?");
                foreach (string localCert in localCerts)
                {
                    Console.WriteLine("{0}.{1}", localCerts.IndexOf(localCert), localCert.Remove(0, localCert.LastIndexOf(@"\") + 1).Replace(".pfx", String.Empty));
                }
                int index = Convert.ToInt32(Console.ReadLine());
                cert    = new X509Certificate2(localCerts[index]);
                subject = cert.Subject.Replace("CN=", String.Empty);
            }
            else
            {
                Console.WriteLine("No certificates found");
                Console.ReadKey();
                return;
            }

            while (true)
            {
                Console.Write("IP: ");
                host = Console.ReadLine();
                Console.Write("PORT: ");
                port   = Convert.ToInt32(Console.ReadLine());
                client = new TcpClient();
                try
                {
                    client.Connect(host, port);  //подключение клиента
                    stream = client.GetStream(); // получаем поток
                    BinaryFormatter             formatter = new BinaryFormatter();
                    Task                        task      = Task.Run(() => ReceiveMessage());
                    Dictionary <string, object> data      = new Dictionary <string, object>();
                    data.Add("command", "authReq");
                    data.Add("subject", subject);
                    formatter.Serialize(stream, data);

                    while (true)
                    {
                        string command = Console.ReadLine();
                        data.Clear();
                        switch (command)
                        {
                        default:
                        {
                            Console.WriteLine("Unknown command");
                            break;
                        }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    Disconnect();
                }
            }
        }
Esempio n. 5
0
        private void getMessage()
        {
            try
            {
                while (true)
                {
                    serverStream = clientSocket.GetStream();
                    byte[] inStream = new byte[10025];
                    serverStream.Read(inStream, 0, inStream.Length);
                    List <string> parts = null;

                    if (!SocketConnected(clientSocket))
                    {
                        MessageBox.Show("You've been Disconnected");
                        ctThread.Abort();
                        clientSocket.Close();
                        btnConnect.Enabled = true;
                    }

                    parts = (List <string>)ByteArrayToObject(inStream);
                    switch (parts[0])
                    {
                    case "userList":
                        getUsers(parts);
                        break;

                    case "gChat":
                        readData = "" + parts[1];
                        msg();
                        break;

                    case "pChat":
                        managePrivateChat(parts);
                        break;
                    }

                    if (readData[0].Equals('\0'))
                    {
                        readData = "Reconnect Again";
                        msg();

                        this.Invoke((MethodInvoker) delegate // To Write the Received data
                        {
                            btnConnect.Enabled = true;
                        });

                        ctThread.Abort();
                        clientSocket.Close();
                        break;
                    }
                    chat.Clear();
                }
            }
            catch (Exception e)
            {
                ctThread.Abort();
                clientSocket.Close();
                btnConnect.Enabled = true;
                Console.WriteLine(e);
            }
        }
Esempio n. 6
0
 public Client(string IP, int port)
 {
     clientSocket = new TcpClient();
     clientSocket.Connect(IPAddress.Parse(IP), port);
     stream = clientSocket.GetStream();
 }
Esempio n. 7
0
        /// <summary>
        /// opens a new multiplayer connection to the client
        /// </summary>
        public void Open()
        {
            // sets bools to true and message to null
            isMultiActive = true;
            isOpen        = true;

            // create a client and Open the streams
            client = new TcpClient();
            client.Connect(ep);
            stream = client.GetStream();
            reader = new BinaryReader(stream);
            writer = new BinaryWriter(stream);

            // task to listen for the receiving stream. ready for messages from the server
            receiver = new Task(() =>
            {
                // do as long as the isOpen bool is true
                while (isOpen)
                {
                    // read only if the last message received was already taken
                    if (statues == null)
                    {
                        string result;
                        Status status;
                        try
                        {
                            // get a message from the server and parse it to Statues
                            result  = reader.ReadString();
                            statues = Statues.FromJson(result);
                            status  = statues.Stat;
                            NotifyAboutMessage?.Invoke(this, new StatuesEventArgs(statues));
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("Connect to the server have been closed");
                            // an error in the connection
                            statues = new Statues();
                            statues.SetStatues(Status.Close, "Error receiveing message from the server");
                            status = Status.Disconnect;
                        }
                        // switch through the different options received from the server
                        switch (status)
                        {
                        case Status.Disconnect:
                            {
                                Close();
                                break;
                            }

                        case Status.Close:
                            {
                                Close();
                                break;
                            }

                        case Status.Play:
                            {
                                statues = null;
                                continue;
                            }

                        case Status.CloseGame:
                            {
                                // close the connection
                                writer.Write("exit");
                                Close();
                                break;
                            }

                        case Status.Finish:
                            {
                                // close the connection
                                writer.Write("exit");
                                Close();
                                break;
                            }

                        default:
                            {
                                break;
                            }
                        }
                    }
                    // wait for some one to receive the message
                    else
                    {
                        Thread.Sleep(1);
                    }
                }
            });
            // start the thread
            receiver.Start();
        }
Esempio n. 8
0
        private void Button1_Click(object sender, EventArgs e)
        {
            TcpClient client = new TcpClient();

            try
            {
                //client.Connect("127.0.0.1", 49677);


                client.Connect("172.16.3.199", 40000);

                nStream = client.GetStream();
                //send data
                sendData = new BinaryWriter(nStream);
                readData = new BinaryReader(nStream);

                if (!String.IsNullOrEmpty(textBox1.Text))
                {
                    PlayerName = textBox1.Text;
                    if (radioButton2.Checked)
                    {
                        flag = true;
                    }
                    try
                    {
                        sendData.Write(PlayerName + " " + flag.ToString().ToLower());

                        panel1.Visible = true;
                        panel1.Paint  += new PaintEventHandler(Panel1_Paint);
                        panel1.Refresh();
                        PName.Text = PlayerName;

                        if (flag)
                        {
                            DisabledMood();
                            //read playing character
                            str         = readData.ReadString();
                            PlayingChar = str;
                            //  MessageBox.Show("Play char "+PlayingChar);
                            if (str == "X")
                            {
                                OtherPlayingChar = "O";
                            }
                            else
                            {
                                OtherPlayingChar = "X";
                            }
                            //MessageBox.Show("other char " + OtherPlayingChar);
                            ChangeTurn();
                        }
                        else
                        {
                            RecieveResponse();
                        }
                    }
                    catch
                    {
                        LostConnection();
                    }
                }
            }
            catch
            {
                MessageBox.Show("No Connection! Please, Try Again Later");
            }
        }
Esempio n. 9
0
        private void OnAccepted(object sender)
        {
            TcpClient result = sender as TcpClient;

            while (true)
            {
                try
                {
                    NetworkStream ns = tc.GetStream();

                    BinaryFormatter bf = new BinaryFormatter();

                    object test_obj       = bf.Deserialize(ns) as object;
                    Data   dataFromServer = (Data)test_obj;

                    if (dataFromServer.keyword == "jr")
                    {
                        if (dataFromServer.room_number != "000")
                        {
                            winformThreadDisplay.DisplayClear(textBoxCurRoom);
                            winformThreadDisplay.DisplayText(dataFromServer.room_number, textBoxCurRoom);
                        }

                        winformThreadDisplay.DisplayClear(richTextBoxCurUser);
                        List <string> user_list_string = dataFromServer.user_list;

                        foreach (var u in user_list_string)
                        {
                            winformThreadDisplay.DisplayText(u, richTextBoxCurUser);
                        }
                        winformThreadDisplay.DisplayText(dataFromServer.msg, richTextBoxMain);
                        user.room_number = dataFromServer.room_number;
                    }

                    else if (dataFromServer.keyword == "rc")
                    {
                        List <string> room_list = dataFromServer.room_list;

                        winformThreadDisplay.DisplayClear(textBoxAllRoom);
                        foreach (var r in room_list)
                        {
                            winformThreadDisplay.DisplayText(r + " ", textBoxAllRoom);
                        }
                    }
                    else if (dataFromServer.keyword == "ms")
                    {
                        winformThreadDisplay.DisplayText(dataFromServer.msg, richTextBoxMain);
                    }
                    else if (dataFromServer.keyword == "nr")
                    {
                        winformThreadDisplay.DisplayClear(textBoxCurRoom);
                        winformThreadDisplay.DisplayText(dataFromServer.room_number, textBoxCurRoom);
                        winformThreadDisplay.DisplayText(dataFromServer.msg, richTextBoxMain);

                        List <string> user_list_string = dataFromServer.user_list;

                        winformThreadDisplay.DisplayClear(richTextBoxCurUser);
                        foreach (var u in user_list_string)
                        {
                            winformThreadDisplay.DisplayText(u, richTextBoxCurUser);
                        }
                        user.room_number = dataFromServer.room_number;
                    }
                    else if (dataFromServer.keyword == "ro")
                    {
                        if (dataFromServer.room_number != "000")
                        {
                            List <string> user_list_string = dataFromServer.user_list;

                            winformThreadDisplay.DisplayClear(richTextBoxCurUser);
                            foreach (var u in user_list_string)
                            {
                                winformThreadDisplay.DisplayText(u, richTextBoxCurUser);
                            }
                        }
                        else
                        {
                            winformThreadDisplay.DisplayClear(richTextBoxMain);
                            winformThreadDisplay.DisplayClear(richTextBoxCurUser);
                        }
                        user.room_number = dataFromServer.room_number;
                    }
                    else if (dataFromServer.keyword == "nc")
                    {
                        winformThreadDisplay.DisplayClear(textBox_name);
                        winformThreadDisplay.DisplayText(dataFromServer.user_name, textBox_name);
                        winformThreadDisplay.DisplayClear(richTextBoxCurUser);
                        if (dataFromServer.user_list != null)
                        {
                            foreach (var u in dataFromServer.user_list)
                            {
                                winformThreadDisplay.DisplayText(u, richTextBoxCurUser);
                            }
                        }
                        user.user_name = dataFromServer.user_name;
                    }
                    else if (dataFromServer.keyword == "ul")
                    {
                        winformThreadDisplay.DisplayClear(richTextBoxCurUser);
                        if (dataFromServer.user_list != null)
                        {
                            foreach (var u in dataFromServer.user_list)
                            {
                                winformThreadDisplay.DisplayText(u, richTextBoxCurUser);
                            }
                        }
                    }
                }
                catch (SocketException se)
                {
                    Console.WriteLine(se);
                    break;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    break;
                }
            }
        }