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(); }
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(); }
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; } }