Esempio n. 1
0
        /// <summary>
        /// 开始监听
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Start_Click(object sender, EventArgs e)
        {
            //当点击开始监听的时候 在服务器端创建一个负责监听IP地址和端口号的Socket
            socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //获取ip地址
            IPAddress ip = IPAddress.Parse(this.txt_IP.Text.Trim());
            //创建端口号
            IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32(this.txt_Port.Text.Trim()));

            //绑定IP地址和端口号
            socketWatch.Bind(point);
            this.txt_Log.AppendText("监听成功" + " \r \n");
            //开始监听:设置最大可以同时连接多少个请求
            socketWatch.Listen(10);

            //实例化回调
            //setCallBack = new SetTextValueCallBack(SetTextValue); SetTextValue;
            //receiveCallBack = new ReceiveMsgCallBack(ReceiveMsg);
            //setCmbCallBack = new SetCmbCallBack(AddCmbItem);
            //sendCallBack = new SendFileCallBack(SendFile);
            setCallBack     = SetTextValue;
            receiveCallBack = ReceiveMsg;
            setCmbCallBack  = AddCmbItem;
            sendCallBack    = SendFile;

            //创建线程
            AcceptSocketThread = new Thread(new ParameterizedThreadStart(StartListen));
            AcceptSocketThread.IsBackground = true;
            AcceptSocketThread.Start(socketWatch);
        }
Esempio n. 2
0
        /// <summary>
        /// 开始监听
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Start_Click(object sender, EventArgs e)
        {
            string host = txt_IP.Text; //服务端IP地址
            int    port = int.Parse(txt_Port.Text);

            socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //设置端口可复用
            socketWatch.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
            //连接服务端
            socketWatch.Connect(host, port);

            this.txt_Log.AppendText("连接成功" + " \r \n");

            //实例化回调
            setCallBack     = new SetTextValueCallBack(SetTextValue);
            receiveCallBack = new ReceiveMsgCallBack(ReceiveMsg);
            ipCallBack      = new IPCallBack(IpChangeValue);
            setCmbCallBack  = new SetCmbCallBack(AddCmbItem);
            sendCallBack    = new SendFileCallBack(SendFile);
            sendThread      = new Thread(Send);
            sendThread.Start();
            threadReceive = new Thread(new ParameterizedThreadStart(Receive));
            threadReceive.IsBackground = true;
            threadReceive.Start(socketWatch);
        }
Esempio n. 3
0
        /// <summary>
        /// 开始监听
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Start_Click(object sender, EventArgs e)
        {
            //当点击开始监听的时候 在服务器端创建一个负责监听IP地址和端口号的Socket
            int        port = int.Parse(this.txt_Port.Text.Trim());
            IPEndPoint ipe  = new IPEndPoint(IPAddress.Any, port);//new IPEndPoint(IPAddress.Any, port);//IPAddress.Parse("180.175.63.122")

            socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socketWatch.Bind(ipe);
            socketWatch.Listen(20);
            this.txt_Log.AppendText("监听成功" + " \r \n");

            //实例化回调
            setCallBack     = new SetTextValueCallBack(SetTextValue);
            receiveCallBack = new ReceiveMsgCallBack(ReceiveMsg);
            ipCallBack      = new IPCallBack(IpChangeValue);
            setCmbCallBack  = new SetCmbCallBack(AddCmbItem);
            sendCallBack    = new SendFileCallBack(SendFile);
            Thread send = new Thread(Send);

            send.Start();
            //创建线程
            AcceptSocketThread = new Thread(new ParameterizedThreadStart(StartListen));
            AcceptSocketThread.IsBackground = true;
            AcceptSocketThread.Start(socketWatch);
        }
Esempio n. 4
0
        private void btnListen_Click(object sender, EventArgs e)
        {
            IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888);

            sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            sock.Bind(ipep);               //设置监听地址
            sock.Listen(10);               //监听

            //实例化回调
            setCallBack     = new SetTextValueCallBack(SetTextValue);
            receiveCallBack = new ReceiveMsgCallBack(ReceiveMsg);
            setCmbCallBack  = new SetCmbCallBack(AddCmbItem);
            sendCallBack    = new SendFileCallBack(SendFile);

            //创建线程
            AcceptSocketThread = new Thread(new ParameterizedThreadStart(StartListen));
            AcceptSocketThread.IsBackground = true;
            AcceptSocketThread.Start(sock);
        }
Esempio n. 5
0
        ///连接
        private void button1_Click(object sender, EventArgs e)
        {
            string strIp = textBox1.Text.Trim() + @":" + textBox2.Text.Trim();

            if (Servers.ContainsKey(strIp))
            {
                textBox3.AppendText(@"已与 " + strIp + @" 连接" + Environment.NewLine);
                return;
            }
            try
            {
                socketSend = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPAddress ip = IPAddress.Parse(textBox1.Text.Trim());
                socketSend.Connect(ip, Convert.ToInt32(textBox2.Text.Trim()));
                Servers.Add(strIp, socketSend);
                socketSend = null;

                //实例化回调
                setCallBack     = SetValue;
                receiveCallBack = SetValue;
                setCmbCallBack  = AddCmbItem;
                comboBox1.Invoke(setCmbCallBack, strIp);
                textBox3.Invoke(setCallBack, @"与 " + strIp + @" 连接成功");
                button2.Enabled = true;
                button3.Enabled = true;

                //开启一个新的线程不停的接收服务器发送消息的线程
                threadReceive = new Thread(Receive)
                {
                    IsBackground = true
                };
                //设置为后台线程
                ReceiveThreads.Add(strIp, threadReceive);
                threadReceive.Start(strIp);
            }
            catch (Exception /*ex*/)
            {
                //MessageBox.Show(@"连接服务端出错:" + ex, @"出错啦", MessageBoxButtons.OK, MessageBoxIcon.Error);
                socketSend?.Close();
                textBox3.AppendText(@"与 " + strIp + @" 连接失败" + Environment.NewLine);
            }
        }
Esempio n. 6
0
        private void bt_startlisten_Click(object sender, EventArgs e)
        {
            socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //创建一个用于监听的socket对象
            IPAddress  ip    = IPAddress.Parse(this.txb_ip.Text.Trim());
            IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32(this.txb_port.Text.Trim()));         //建立一个端点对象

            socketWatch.Bind(point);                                                                   //绑定端点
            this.txt_log.AppendText("监听成功" + " \r\n");
            socketWatch.Listen(10);                                                                    //开始帧听,最大接受10个请求

            //实例化回调
            setCallBack     = new SetTextValueCallBack(SetTextValue);
            receiveCallBack = new ReceiveMsgCallBack(ReceiveMsg);
            setCmbCallBack  = new SetCmbCallBack(AddCmbItem);

            AcceptSocketThread = new Thread(new ParameterizedThreadStart(StartListen));
            AcceptSocketThread.IsBackground = true;  //后台运行
            AcceptSocketThread.Start(socketWatch);   //启动线程,socketWatch作为线程的数据对象
            this.bt_startlisten.Enabled = false;
            this.bt_stoplisten.Enabled  = true;
        }
Esempio n. 7
0
        private void BtnStartServer_Click(object sender, RoutedEventArgs e)
        {
            #region  绑定回调函数
            setCallBack     = new SetTextValueCallBack(SetTextValue);
            receiveCallBack = new ReceiveMsgCallBack(ReceiveMsg);
            setCmbCallBack  = new SetCmbCallBack(AddCmbItem);
            sendCallBack    = new SendFileCallBack(SendFile);
            #endregion
            //监听
            Socket socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socketWatch.Bind(point);
            socketWatch.Listen(100);
            SetTextValue(string.Format("服务器{0}:开启监听", socketWatch.LocalEndPoint.ToString()));

            //创建监听线程
            AcceptSocketThread = new Thread(new ParameterizedThreadStart(StartListen));
            AcceptSocketThread.IsBackground = true;
            AcceptSocketThread.Start(socketWatch);

            this.cmbSocket.ItemsSource = dicSocket.Keys;
        }
Esempio n. 8
0
        ///开始监听
        private void button1_Click(object sender, EventArgs e)
        {
            button1.Enabled = false;
            //创建一个负责监听IP地址和端口号的Socket
            socketListen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //获取ip地址
            IPAddress ip = IPAddress.Parse(textBox1.Text.Trim());
            //创建端口号
            IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32(textBox2.Text.Trim()));

            //绑定IP地址和端口号
            try
            {
                socketListen.Bind(point);
            }
            catch
            {
                textBox4.AppendText(@"监听失败" + Environment.NewLine);
                button1.Enabled = true;
                return;
            }
            textBox4.AppendText(@"监听成功" + Environment.NewLine);
            button2.Enabled = true;
            button5.Enabled = true;
            //开始监听:设置最大可以同时连接多少个请求
            socketListen.Listen(MAXClients);

            //实例化回调
            setCallBack     = SetTextValue;
            receiveCallBack = ReceiveMsg;
            setCmbCallBack  = AddCmbItem;
            sendCallBack    = SendFile;

            //创建线程
            AcceptSocketThread = new Thread(StartListen)
            {
                IsBackground = true
            };
            AcceptSocketThread.Start(socketListen);
        }
Esempio n. 9
0
        //接收客户端发送消息的线程
        //Thread threadReceive;
        //转发消息的线程
        //Thread zhaunxianchen;
        /// <summary>
        /// 开始监听
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Start_Click(object sender, EventArgs e)
        {
            try
            {
                button2.Enabled = true;
                UDPjiantin();
                //当点击开始监听的时候 在服务器端创建一个负责监听IP地址和端口号的Socket
                socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                //获取ip地址
                IPAddress ip = IPAddress.Parse(this.textBox1.Text.Trim());
                //创建端口号
                IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32(this.textBox2.Text.Trim()));
                //绑定IP地址和端口号
                socketWatch.Bind(point);
                //开始监听:设置最大可以同时连接多少个请求
                socketWatch.Listen(60);

                //实例化回调
                setCallBack     = new SetTextValueCallBack(SetTextValue);
                receiveCallBack = new ReceiveMsgCallBack(ReceiveMsg);
                setCmbCallBack  = new SetCmbCallBack(AddCmbItem);//绑定soket
                sendCallBack    = new SendFileCallBack(SendFile);
                //查昵称
                zhangfalixian = new ReceiveMsgCallBack(zhuangfa);
                //创建线程
                AcceptSocketThread = new Thread(new ParameterizedThreadStart(StartListen));
                AcceptSocketThread.IsBackground = true;
                AcceptSocketThread.Start(socketWatch);
                MessageBox.Show("服务器开启成功");
                button1.Enabled = false;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                button2.Enabled = false;
                button1.Enabled = true;
                IsUdpcRecvStart = false;
            }
        }