资源简介

TCP的接收要发送功能都已经封状成类,大家可以尽量少的代码就可以复用。实现的功能也很简 单,只有一个接收和一个发送。代码中注释满满,大家一起研究吧。希望大家通过这个小程序 熟悉TCP实的基本过程和要求。 VS2010 C# .NET4.0下编译通过

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace C_Sharp_Tcp
{
    public partial class FormMain : Form
    {
        TcpServer tcpServer = null;
        TcpClient tcpClient = null;
        public FormMain()
        {
            InitializeComponent();
        }

        private void FormMain_Load(object sender EventArgs e)
        {
            tcpServer = new TcpServer();
            tcpServer.ReceiveEvent += new TcpServer.ReceiveHandler(myTcp_ReceiveEvent);
            tcpServer.StartListen(Convert.ToInt32(txtPort.Text));

            tcpClient = new TcpClient();
            tcpClient.SendEvent += new TcpClient.SendHandler(tcpClient_SendEvent);
            btnSend.Enabled = tcpClient.Connect(txtIp.Text Convert.ToInt32(txtPort.Text));
        }

        void myTcp_ReceiveEvent(string data)
        {
            //必须要使用代理
            this.BeginInvoke(new Action(() => lstReceive.Items.Add(data)));
        }

        void tcpClient_SendEvent(string data)
        {
            //必须要使用代理
            this.BeginInvoke(new Action(() => lstSend.Items.Add(data)));
        }

        private void btnSend_Click(object sender EventArgs e)
        {
            if (tcpClient.Send(txtMsg.Text))
                txtMsg.Text = string.Empty;
        }

        protected override void OnClosing(CancelEventArgs e)
        {
            //通知服务器循环退出
            tcpClient.Send(TcpServer.ExitCode);
            //等待服务器处理
            System.Threading.Thread.Sleep(500);
            //断开客户端套接字
            tcpClient.DisConnect();

            //闭关闭服务器监听
            tcpServer.StopListen();

            base.OnClosing(e);
        }
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-05-26 18:47  C_Sharp_Tcp\
     文件        4093  2017-05-26 18:07  C_Sharp_Tcp\C_Sharp_Tcp.csproj
     文件         911  2017-05-26 18:07  C_Sharp_Tcp\C_Sharp_Tcp.sln
     文件       24064  2017-05-26 18:46  C_Sharp_Tcp\C_Sharp_Tcp.suo
     文件        7768  2017-05-26 18:43  C_Sharp_Tcp\FormMain.Designer.cs
     文件        1947  2017-05-26 18:43  C_Sharp_Tcp\FormMain.cs
     文件        5817  2017-05-26 18:43  C_Sharp_Tcp\FormMain.resx
     文件         495  2017-05-26 18:09  C_Sharp_Tcp\Program.cs
     目录           0  2017-05-26 18:07  C_Sharp_Tcp\Properties\
     文件        2858  2017-05-26 18:09  C_Sharp_Tcp\Properties\Resources.Designer.cs
     文件        5612  2010-05-30 18:21  C_Sharp_Tcp\Properties\Resources.resx
     文件        1107  2017-05-26 18:09  C_Sharp_Tcp\Properties\Settings.Designer.cs
     文件         249  2010-05-30 18:21  C_Sharp_Tcp\Properties\Settings.settings
     文件       42496  2017-05-26 18:07  C_Sharp_Tcp\TCPServer.suo
     文件        1677  2017-05-26 18:46  C_Sharp_Tcp\TcpClient.cs
     文件        2879  2017-05-26 18:13  C_Sharp_Tcp\TcpServer.cs

评论

共有 条评论