C# Socket客户端 案例

来源:互联网 发布:三国群英传辅助软件 编辑:程序博客网 时间:2024/05/28 15:40

原创~如转载请标明出处!

以下为Socket客户端关键代码案例,运行测试OK


<span style="white-space:pre"></span>TcpClient clientTcp;        Thread clientThread;        NetworkStream ns;        StreamReader sr;        StreamWriter sw;        Socket clientSocket;
<pre name="code" class="csharp">        #region Socket向服务器发送数据        private void ConnectToServer()        {            //byte[] data = new byte[1024];            //创建一个套接字            IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("192.168.0.1"), 6001);            clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);            clientTcp = new TcpClient();            //将套接字与远程服务器地址相连            try            {                //clientSocket.Connect(ipep);                clientTcp.Connect(ipep);            }            catch (SocketException ex)            {                //MessageBox.Show("connect error: " + ex.Message);                errorIndex++;                if (errorIndex < 4)                    ConnectToServer();                else                {                    this.Invoke(new EventHandler(delegate                        {                            tmrConnect.Enabled = true;                        }));                }                return;            }            catch (StackOverflowException ex)            {                //堆栈溢出            }            errorIndex = 0;            ns = clientTcp.GetStream();            sr = new StreamReader(ns);            sw = new StreamWriter(ns);            string data = "";            while (true)            {                //接收服务器信息                int bufLen = 0;                try                {                    //bufLen = clientSocket.Available;                    //bufLen = clientTcp.Available;                    //clientSocket.Receive(data, 0, bufLen, SocketFlags.None);                    //ns.Read(data, 0, bufLen);                    data = sr.ReadLine();                    if (data == "")                    {                        continue;                    }                }                catch (Exception ex)                {                    ConnectToServer();                    return;                }                //string clientcommand = System.Text.Encoding.ASCII.GetString(data).Substring(0, bufLen);                //lstClient.Items.Add(data);                Console.WriteLine(data);            }        }        private void Connect()        {            //if (clientThread.IsAlive)            {                //clientThread.Abort();            }            clientThread = new Thread(new ThreadStart(ConnectToServer));            clientThread.Start();        }        /// <summary>        /// 向服务器发送字符串        /// </summary>        /// <param name="message"></param>        private void SendToServer(string message)        {            if (sw != null)            {                //向服务器发送信息                sw.WriteLine(message);                sw.Flush();            }        }
原创~如转载请标明出处!


0 0
原创粉丝点击