Beispiel #1
0
        private void Create_Server_Click(object sender, EventArgs e)
        {
            host            = new PlayHold_em_host(this);
            mainSock        = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
            host.Pname      = textBox1.Text;
            host.money      = int.Parse(textBox2.Text);
            host.ante       = int.Parse(textBox3.Text);
            host.startmoney = int.Parse(textBox2.Text);
            host.Pnames.Add(textBox1.Text);
            int port;

            if (!int.TryParse(PORT.Text, out port))
            {
                MessageBox.Show("포트 번호가 잘못 입력되었거나 입력되지 않았습니다.");
                PORT.Focus();
                PORT.SelectAll();
                return;
            }

            //클라이언트 연결 요청을 위해 소켓 오픈
            IPEndPoint serverEP = new IPEndPoint(thisAddress, port);

            mainSock.Bind(serverEP);
            mainSock.Listen(10);

            mainSock.BeginAccept(host.AcceptCallback, null);

            host.Show();
            this.Hide();
        }
Beispiel #2
0
        private void Enter_Server_Click(object sender, EventArgs e)
        {
            mainSock     = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
            client       = new PlayHold_em_client(this);
            client.Pname = textBox1.Text;
            client.money = int.Parse(textBox2.Text);
            if (mainSock.Connected)
            {
                MessageBox.Show("이미 연결되어 있습니다!");
                return;
            }

            int port;

            if (!int.TryParse(PORT.Text, out port))
            {
                MessageBox.Show("포트 번호가 잘못 입력되었거나 입력되지 않았습니다.");
                PORT.Focus();
                PORT.SelectAll();
                return;
            }

            try { mainSock.Connect(IP.Text, port); }
            catch (Exception ex)
            {
                MessageBox.Show("연결에 실패했습니다!\n오류 내용: {0}", ex.Message);
                return;
            }

            AsyncObject obj = new AsyncObject(4096);

            obj.WorkingSocket = mainSock;
            mainSock.BeginReceive(obj.Buffer, 0, obj.BufferSize, 0, client.DataReceived, obj);

            //MessageBox.Show("서버에 입장 중입니다.");
            client.Show(); //클라이언트창오픈
            this.Hide();
        }
Beispiel #3
0
        private void ConnectButton_Click(object sender, EventArgs e)
        {
            string clientId = DateTime.Now.ToString();

            CliendID.Text = clientId;

            if (IPADDR.Text.Length == 0)
            {
                MessageBox.Show("请输入服务器地址!");
                return;
            }

            if (PORT.Text.Length == 0)
            {
                MessageBox.Show("端口号为空,请输入端口号!");
                return;
            }

            if (!IPCheck(IPADDR.Text))
            {
                if (!domainnameToip(IPADDR.Text))
                {
                    MessageBox.Show("IP或域名格式不正确!");
                    IPADDR.Text = string.Empty;
                    IPADDR.Focus();
                    return;
                }
            }

            int port = Convert.ToInt32(PORT.Text);

            if (port > 65535)
            {
                MessageBox.Show("端口号超过65535,请输入正确端口号!");
                PORT.Text = string.Empty;
                PORT.Focus();
                return;
            }

            string username = "******";
            string password = "******";

            string[] topics = new string[1];
            if (Sub.Text.Length != 0)
            {
                topics[0] = Sub.Text;
            }
            else
            {
                topics[0] = "+";
                Sub.Text  = "+";
            }

            byte[] qosLevels = { MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE };

            try
            {
                if (string.Compare(ConnectButton.Text, "connect") == 0)
                {
                    //单向SSL通信
                    client = new MqttClient(IPADDR.Text, port, false, null, null, MqttSslProtocols.None);
                    //消息接受
                    client.MqttMsgPublishReceived += new MqttClient.MqttMsgPublishEventHandler(messageReceive);
                    //连接Broker
                    client.ConnectionClosed += new MqttClient.ConnectionClosedEventHandler(ConnectState);

                    client.Connect(clientId, username, password);

                    client.Subscribe(topics, qosLevels);


                    ConnectFlag            = true;
                    Sub.Enabled            = false;
                    PORT.Enabled           = false;
                    IPADDR.Enabled         = false;
                    DeviceID.Enabled       = true;
                    FilePath.Enabled       = true;
                    CliendID.Enabled       = false;
                    PubTopic.Enabled       = true;
                    UpgradeButton.Enabled  = true;
                    FileButton.Enabled     = true;
                    FilePushButton.Enabled = true;
                    ConnectButton.Text     = "disconnect";
                    return;
                }
                else
                {
                    client.Disconnect();
                    Sub.Enabled            = true;
                    ConnectFlag            = false;
                    PORT.Enabled           = true;
                    IPADDR.Enabled         = true;
                    DeviceID.Enabled       = false;
                    CliendID.Enabled       = true;
                    FilePath.Enabled       = false;
                    FileButton.Enabled     = false;
                    FilePushButton.Enabled = false;

                    PubTopic.Enabled      = false;
                    UpgradeButton.Enabled = false;
                    ConnectButton.Text    = "connect";
                    return;
                }
            }
            catch (System.Exception)
            {
                MessageBox.Show("MQTT服务器连接失败,请重新连接!");

                PORT.Enabled           = true;
                IPADDR.Enabled         = true;
                CliendID.Enabled       = true;
                FilePath.Enabled       = false;
                FileButton.Enabled     = false;
                FilePushButton.Enabled = false;
                ConnectButton.Text     = "connect";
                return;
            }
        }