知行合一

享受过程 漠视结果

导航

socket tcp 通讯 示例

        private void button1_Click(object sender, EventArgs e)
        {
            Socket srv = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPEndPoint ep = new IPEndPoint(IPAddress.Any, 8080);
            srv.Bind(ep);
            srv.Listen(100);

            Thread th = new Thread(new ParameterizedThreadStart(GetConnection));
            th.IsBackground = true;
            th.Start(srv);

            button1.Enabled = false;
        }

        private void GetConnection(object _srv)
        {
            Socket srv = (Socket)_srv;
            while (true)
            {
                Socket client = srv.Accept();

                Thread th = new Thread(new ParameterizedThreadStart(GetMesFromClient));
                th.IsBackground = true;
                th.Start(client);
            }

        }

        private void GetMesFromClient(object _client)
        {
            Socket client = (Socket)_client;
            while (true)
            {
                byte[] tmp = new byte[1024];
                int len = client.Receive(tmp);
                if (len == 0)
                    break;

                byte[] buffer = new byte[len];
                Array.Copy(tmp, buffer, len);

                string mes = Encoding.Default.GetString(buffer);
                int hd = client.Handle.ToInt32();
            }

            if (client != null)
            {
                client.Close();
            }
        }

posted on 2012-06-29 10:01  项羽  阅读(287)  评论(0编辑  收藏  举报