using System.IO;
using System.Net.Sockets;
using System.Threading;
using System.Net;
using System.Collections;
namespace 服务器
{
    public partial class Form1 : Form
    {
                //变量
        private ThreadStart start;
        private Thread listenThread,client_th;
        static private bool m_bListening = false;
        static private System.Net.IPAddress MyIP = System.Net.IPAddress.Parse("127.0.0.1");
        static private TcpListener listener = new TcpListener(MyIP, 5567);
        private String msg;        ArrayList clientArray = new ArrayList();         public Form1()
        {
            InitializeComponent();
            Control.CheckForIllegalCrossThreadCalls = false;
            start = new ThreadStart(startListen);
            listenThread = new Thread(start);  
        }        private void btnStart_Click(object sender, EventArgs e)
        {
            if (m_bListening)
            {
                m_bListening = false;
                label4.Text = "Server Idle...";
            }
            else
            {
                m_bListening = true;
                listenThread.Start();
                label4.Text = "Server Listening...";
            }
        }
        private void showmore()
        {
            textBox1.Text = msg;
        }
        private void startListen()
        {
            //textBox1.Text = "listening...";
            listener.Start();
            //接收数据
            while (m_bListening)
            {
                //测试是否有数据
                try
                {
                    TcpClient client = listener.AcceptTcpClient();
                    clientArray.Add(client);
                    ParameterizedThreadStart threadStart = new ParameterizedThreadStart(AcceptMsg);
                    client_th = new Thread(threadStart);
                    client_th.Start(client);
                    
                }
                catch (Exception re)
                {
                    MessageBox.Show(re.Message);
                }            }
            listener.Stop();        //
        }
        private void AcceptMsg(object arg)
        {
            TcpClient client = (TcpClient)arg;
            NetworkStream ns = client.GetStream();
            //StreamReader sr = new StreamReader(ns);//流读写器
            //字组处理
            byte[] bytes = new byte[1024];
            int bytesread = ns.Read(bytes, 0, bytes.Length);
            msg = Encoding.Default.GetString(bytes, 0, bytesread);
            //显示
            //MessageBox.Show(msg);
            showmore();
            ns.Flush(); 
            //ns.Close();
        }        private void btnSend_Click(object sender, EventArgs e)
        {
            object a = clientArray[0];
            TcpClient client = (TcpClient)clientArray[0];
            if (client == null)
                return;
            NetworkStream sendStream = client.GetStream();
            String msg = textBox1.Text;
            Byte[] sendBytes = Encoding.Default.GetBytes(msg);
            sendStream.Write(sendBytes, 0, sendBytes.Length);
            sendStream.Flush();
            //sendStream.Close();
        }
    }
}客户端
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;using System.IO;
using System.Net.Sockets;
using System.Threading;namespace 客户端
{
    public partial class Form1 : Form
    {
        private TcpClient client;
        private Thread client_th;
        public Form1()
        {
            InitializeComponent();
            Control.CheckForIllegalCrossThreadCalls = false;
        }       private void button1_Click(object sender, EventArgs e)
        {
            String mystr = textBox1.Text;
            string ip = "127.0.0.1";           this.connect_s(ip);
        
        }
        public void connect_s(string ip)
        {
            try
            {
                client = new TcpClient(ip, 5567);
                ThreadStart threadStart = new ThreadStart(AcceptMsg);
                client_th = new Thread(threadStart);
                client_th.Start();
                textBox2.Text="连接成功";            }
            catch(System.Exception e)
            {
                textBox2.Text = e.ToString(); ;            }
        }
        private void AcceptMsg()
        {
            NetworkStream ns = client.GetStream();
            //StreamReader sr = new StreamReader(ns);//流读写器
            //字组处理
            byte[] bytes = new byte[1024];
            int bytesread = ns.Read(bytes, 0, bytes.Length);
            string msg = Encoding.Default.GetString(bytes, 0, bytesread);
            //显示
            //MessageBox.Show(msg);
            textBox1.Text = msg;
            ns.Flush();
            //ns.Close();
        }        private void btnSend_Click(object sender, EventArgs e)
        {
            if (client == null)
                return;
            NetworkStream sendStream = client.GetStream();
            String msg = textBox1.Text;
            Byte[] sendBytes = Encoding.Default.GetBytes(msg);
            sendStream.Write(sendBytes, 0, sendBytes.Length);
            sendStream.Flush();
            //sendStream.Close();
            textBox1.Text = "Msg Sent!";
        }    }
}