Form1.cs
资源名称:类似QQ聊天程序.rar [点击查看]
上传用户:yan_wy
上传日期:2007-06-09
资源大小:112k
文件大小:5k
源码类别:
ICQ/即时通讯
开发平台:
C#
- using System;
- using System.Drawing;
- using System.Collections;
- using System.ComponentModel;
- using System.Windows.Forms;
- using System.Data;
- using System.Net.Sockets;
- using System.Threading;
- using System.Net;
- namespace qqserver
- {
- /// <summary>
- /// Form1 的摘要说明。
- /// </summary>
- public class Form1 : System.Windows.Forms.Form
- {
- string ip;
- private System.Windows.Forms.Button button1;
- private System.Windows.Forms.Button button2;
- public System.Windows.Forms.RichTextBox richTextBox1;
- public System.Collections.ArrayList userlist;
- public System.Collections.ArrayList Threadlist;
- private TcpListener listener;
- private Thread getusers;
- /// <summary>
- /// 必需的设计器变量。
- /// </summary>
- private System.ComponentModel.Container components = null;
- public Form1()
- {
- //
- // Windows 窗体设计器支持所必需的
- //
- userlist=new ArrayList();
- Threadlist=new ArrayList();
- InitializeComponent();
- getusers=new Thread(new ThreadStart(setup));
- //
- // 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.button2 = new System.Windows.Forms.Button();
- this.richTextBox1 = new System.Windows.Forms.RichTextBox();
- this.SuspendLayout();
- //
- // button1
- //
- this.button1.Location = new System.Drawing.Point(32, 24);
- this.button1.Name = "button1";
- this.button1.Size = new System.Drawing.Size(72, 40);
- this.button1.TabIndex = 0;
- this.button1.Text = "start";
- this.button1.Click += new System.EventHandler(this.button1_Click);
- //
- // button2
- //
- this.button2.Location = new System.Drawing.Point(160, 24);
- this.button2.Name = "button2";
- this.button2.Size = new System.Drawing.Size(72, 40);
- this.button2.TabIndex = 1;
- this.button2.Text = "stop";
- this.button2.Click += new System.EventHandler(this.button2_Click);
- //
- // richTextBox1
- //
- this.richTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.richTextBox1.Location = new System.Drawing.Point(8, 88);
- this.richTextBox1.Name = "richTextBox1";
- this.richTextBox1.Size = new System.Drawing.Size(324, 224);
- this.richTextBox1.TabIndex = 2;
- this.richTextBox1.Text = "";
- //
- // Form1
- //
- this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
- this.ClientSize = new System.Drawing.Size(336, 325);
- this.Controls.Add(this.richTextBox1);
- this.Controls.Add(this.button2);
- this.Controls.Add(this.button1);
- this.Name = "Form1";
- this.Text = "qqserver";
- this.Closing += new System.ComponentModel.CancelEventHandler(this.Form1_Closing);
- this.ResumeLayout(false);
- }
- #endregion
- /// <summary>
- /// 应用程序的主入口点。
- /// </summary>
- [STAThread]
- static void Main()
- {
- Application.Run(new Form1());
- }
- private void button1_Click(object sender, System.EventArgs e)
- {
- try
- {
- if(getusers.ThreadState==ThreadState.Unstarted)
- {
- getusers.Start();
- }
- else
- getusers.Resume();
- this.button1.Enabled=false;
- }
- catch(Exception ee)
- {
- MessageBox.Show(ee.ToString());
- }
- }
- public void setup()
- {
- try
- {
- string hostname=Dns.GetHostName();
- IPAddress ipAddress = Dns.GetHostByName(hostname).AddressList[0];
- MessageBox.Show(""+ipAddress.ToString());
- this.listener=new TcpListener(ipAddress,5000);
- }
- catch(Exception ee)
- {
- MessageBox.Show(ee.ToString());
- }
- listener.Start();
- while(true)
- {
- user users=new user(listener.AcceptSocket(),this);
- userlist.Add(users);
- Thread thread=new Thread(new ThreadStart(users.run ));
- Threadlist.Add(thread);
- thread.Start();
- }
- }
- private void button2_Click(object sender, System.EventArgs e)
- {
- this.button1.Enabled=true;
- getusers.Suspend();
- }
- private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- this.Threadlist.Clear();
- this.userlist.Clear();
- getusers.Abort();
- this.listener.Stop();
- }
- }
- }