请问哪位大侠晓得什么地方有C#的C/S源码下载 ,或哪位大侠贴一份给我,万分感谢.

解决方案 »

  1.   

    我给你一个
    C端如下:
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.EnterpriseServices;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;
    using System.Threading; namespace TestSer
    {
    /// <summary>
    /// Form1 的摘要说明。
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
    /// <summary>
    /// 必需的设计器变量。
    /// </summary>
    private System.ComponentModel.Container components = null; Thread mythread ;
    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.ListBox listBox1;
    private System.Windows.Forms.Button button1;
    Socket socket;  public Form1()
    {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent(); //
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
    } /// <summary>
    /// 清理所有正在使用的资源。
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    try
      {   
       socket.Close();//释放资源
       mythread.Abort ( ) ;//中止线程
      }
      catch
    { } 
    if( disposing )
    {
    if (components != null) 
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    } #region Windows 窗体设计器生成的代码
    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.label1 = new System.Windows.Forms.Label();
    this.listBox1 = new System.Windows.Forms.ListBox();
    this.button1 = new System.Windows.Forms.Button();
    this.SuspendLayout();
    // 
    // label1
    // 
    this.label1.Location = new System.Drawing.Point(8, 8);
    this.label1.Name = "label1";
    this.label1.Size = new System.Drawing.Size(184, 23);
    this.label1.TabIndex = 0;
    this.label1.Text = "label1";
    // 
    // listBox1
    // 
    this.listBox1.Dock = System.Windows.Forms.DockStyle.Right;
    this.listBox1.ItemHeight = 12;
    this.listBox1.Location = new System.Drawing.Point(200, 0);
    this.listBox1.Name = "listBox1";
    this.listBox1.Size = new System.Drawing.Size(424, 340);
    this.listBox1.TabIndex = 1;
    // 
    // button1
    // 
    this.button1.Location = new System.Drawing.Point(8, 40);
    this.button1.Name = "button1";
    this.button1.Size = new System.Drawing.Size(168, 23);
    this.button1.TabIndex = 2;
    this.button1.Text = "开始监听";
    this.button1.Click += new System.EventHandler(this.button1_Click);
    // 
    // Form1
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
    this.ClientSize = new System.Drawing.Size(624, 349);
    this.Controls.Add(this.button1);
    this.Controls.Add(this.listBox1);
    this.Controls.Add(this.label1);
    this.Name = "Form1";
    this.Text = "Socket服务器端";
    this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
    this.Load += new System.EventHandler(this.Form1_Load);
    this.ResumeLayout(false); }
    #endregion /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
    } private void Form1_Load(object sender, System.EventArgs e)
    {

    } public static IPAddress GetServerIP() { IPHostEntry ieh=Dns.GetHostByName(Dns.GetHostName()); return ieh.AddressList[0]; } private void BeginListen() { IPAddress ServerIp=GetServerIP(); IPEndPoint iep=new IPEndPoint(ServerIp,8000); socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);  byte[] byteMessage=new byte[100]; this.label1.Text=iep.ToString(); socket.Bind(iep); // do while(true) { try { socket.Listen(5); Socket newSocket=socket.Accept(); newSocket.Receive(byteMessage);  string sTime = DateTime.Now.ToShortTimeString ( ) ; string msg=sTime+":"+"Message from:"; msg+=newSocket.RemoteEndPoint.ToString()+Encoding.Default.GetString(byteMessage); this.listBox1.Items.Add(msg);  } catch(SocketException ex) { this.label1.Text+=ex.ToString(); } } // while(byteMessage!=null); } private void button1_Click(object sender, System.EventArgs e)
    {
    try {
    mythread = new Thread(new ThreadStart(BeginListen)); mythread.Start();
    }
    catch(System.Exception er) {
    MessageBox.Show(er.Message,"完成",MessageBoxButtons.OK,MessageBoxIcon.Stop);


    }
    }
      

  2.   

    S端如下
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;using System.Net;
    using System.Net.Sockets;
    using System.Text; namespace TestClient
    {
    /// <summary>
    /// Form1 的摘要说明。
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.TextBox txtip;
    private System.Windows.Forms.TextBox txtport;
    private System.Windows.Forms.TextBox textBox1;
    /// <summary>
    /// 必需的设计器变量。
    /// </summary>
    private System.ComponentModel.Container components = null; public Form1()
    {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent(); //
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
    } /// <summary>
    /// 清理所有正在使用的资源。
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null) 
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    } #region Windows 窗体设计器生成的代码
    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.button1 = new System.Windows.Forms.Button();
    this.txtip = new System.Windows.Forms.TextBox();
    this.txtport = new System.Windows.Forms.TextBox();
    this.textBox1 = new System.Windows.Forms.TextBox();
    this.SuspendLayout();
    // 
    // button1
    // 
    this.button1.Location = new System.Drawing.Point(40, 216);
    this.button1.Name = "button1";
    this.button1.Size = new System.Drawing.Size(160, 23);
    this.button1.TabIndex = 0;
    this.button1.Text = "发送消息";
    this.button1.Click += new System.EventHandler(this.button1_Click);
    // 
    // txtip
    // 
    this.txtip.Location = new System.Drawing.Point(40, 128);
    this.txtip.Name = "txtip";
    this.txtip.Size = new System.Drawing.Size(448, 21);
    this.txtip.TabIndex = 1;
    this.txtip.Text = "txtip";
    // 
    // txtport
    // 
    this.txtport.Location = new System.Drawing.Point(40, 152);
    this.txtport.Name = "txtport";
    this.txtport.Size = new System.Drawing.Size(448, 21);
    this.txtport.TabIndex = 2;
    this.txtport.Text = "txtport";
    // 
    // textBox1
    // 
    this.textBox1.Location = new System.Drawing.Point(40, 104);
    this.textBox1.Name = "textBox1";
    this.textBox1.Size = new System.Drawing.Size(448, 21);
    this.textBox1.TabIndex = 3;
    this.textBox1.Text = "textBox1";
    // 
    // Form1
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
    this.ClientSize = new System.Drawing.Size(520, 373);
    this.Controls.Add(this.textBox1);
    this.Controls.Add(this.txtport);
    this.Controls.Add(this.txtip);
    this.Controls.Add(this.button1);
    this.Name = "Form1";
    this.Text = "Socket客户端";
    this.Load += new System.EventHandler(this.Form1_Load);
    this.ResumeLayout(false); }
    #endregion /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
    } private void Form1_Load(object sender, System.EventArgs e)
    {

    } private void button1_Click(object sender, System.EventArgs e)
    {
    BeginSend();
    } private void BeginSend() { string ip=this.txtip.Text;
    string port=this.txtport.Text;
    IPAddress serverIp=IPAddress.Parse(ip);
    int serverPort=Convert.ToInt32(port);
    IPEndPoint iep=new IPEndPoint(serverIp,serverPort);
    byte[] byteMessage;
    Socket socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
    socket.Connect(iep);
    byteMessage=Encoding.ASCII.GetBytes(textBox1.Text);
    socket.Send(byteMessage);
    socket.Shutdown(SocketShutdown.Both);
    socket.Close(); // } // while(byteMessage!=null); } 
    }
    }