亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chatserver.cs

?? 基于SOCKET的聊天室
?? CS
?? 第 1 頁 / 共 2 頁
字號:
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.Threading;


namespace ChatServer
{
	public class ClientSeverForm : System.Windows.Forms.Form
	{
		/// <summary>
		/// 必需的設計器變量。
		/// </summary>
		private System.ComponentModel.Container components = null;
		
		private System.Windows.Forms.GroupBox grpSocket;
		private System.Windows.Forms.Label label1;
		private System.Windows.Forms.Label label3;
		private System.Windows.Forms.TextBox tbSocketPort;
		private System.Windows.Forms.TextBox tbSocketClientsNum;
		private System.Windows.Forms.RichTextBox rtbSocketMsg;
		private System.Windows.Forms.Button btnSocketStart;
		private System.Windows.Forms.Button btnSocketStop;
		private System.Windows.Forms.ListBox lbSocketClients;

		//clients數組保存當前在線用戶的Client對象
		internal static Hashtable clients=new Hashtable();
		
		//該服務器默認的監聽的端口號
		private TcpListener listener;
		
		//服務器可以支持的最多的客戶端的連接數
		static int MAX_NUM=100;
		
		//開始服務的標志
		internal static bool SocketServiceFlag = false;

		public ClientSeverForm()
		{
			//
			// Windows 窗體設計器支持所必需的
			//
			InitializeComponent();

			//
			// TODO: 在 InitializeComponent 調用后添加任何構造函數代碼
			//
		}

		/// <summary>
		/// 清理所有正在使用的資源。
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Windows Form Designer generated code
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ClientSeverForm));
			this.grpSocket = new System.Windows.Forms.GroupBox();
			this.lbSocketClients = new System.Windows.Forms.ListBox();
			this.btnSocketStop = new System.Windows.Forms.Button();
			this.rtbSocketMsg = new System.Windows.Forms.RichTextBox();
			this.btnSocketStart = new System.Windows.Forms.Button();
			this.tbSocketPort = new System.Windows.Forms.TextBox();
			this.label1 = new System.Windows.Forms.Label();
			this.tbSocketClientsNum = new System.Windows.Forms.TextBox();
			this.label3 = new System.Windows.Forms.Label();
			this.grpSocket.SuspendLayout();
			this.SuspendLayout();
			// 
			// grpSocket
			// 
			this.grpSocket.Controls.Add(this.lbSocketClients);
			this.grpSocket.Controls.Add(this.btnSocketStop);
			this.grpSocket.Controls.Add(this.rtbSocketMsg);
			this.grpSocket.Controls.Add(this.btnSocketStart);
			this.grpSocket.Controls.Add(this.tbSocketPort);
			this.grpSocket.Controls.Add(this.label1);
			this.grpSocket.Controls.Add(this.tbSocketClientsNum);
			this.grpSocket.Controls.Add(this.label3);
			this.grpSocket.Location = new System.Drawing.Point(16, 16);
			this.grpSocket.Name = "grpSocket";
			this.grpSocket.Size = new System.Drawing.Size(784, 368);
			this.grpSocket.TabIndex = 13;
			this.grpSocket.TabStop = false;
			this.grpSocket.Text = "Socket連接監聽";
			// 
			// lbSocketClients
			// 
			this.lbSocketClients.Location = new System.Drawing.Point(8, 64);
			this.lbSocketClients.Name = "lbSocketClients";
			this.lbSocketClients.ScrollAlwaysVisible = true;
			this.lbSocketClients.Size = new System.Drawing.Size(200, 290);
			this.lbSocketClients.TabIndex = 21;
			// 
			// btnSocketStop
			// 
			this.btnSocketStop.Enabled = false;
			this.btnSocketStop.Location = new System.Drawing.Point(528, 32);
			this.btnSocketStop.Name = "btnSocketStop";
			this.btnSocketStop.Size = new System.Drawing.Size(88, 24);
			this.btnSocketStop.TabIndex = 20;
			this.btnSocketStop.Text = "Socket停止";
			this.btnSocketStop.Click += new System.EventHandler(this.btnSocketStop_Click);
			// 
			// rtbSocketMsg
			// 
			this.rtbSocketMsg.Location = new System.Drawing.Point(216, 64);
			this.rtbSocketMsg.Name = "rtbSocketMsg";
			this.rtbSocketMsg.Size = new System.Drawing.Size(552, 296);
			this.rtbSocketMsg.TabIndex = 19;
			this.rtbSocketMsg.Text = "";
			// 
			// btnSocketStart
			// 
			this.btnSocketStart.Location = new System.Drawing.Point(424, 32);
			this.btnSocketStart.Name = "btnSocketStart";
			this.btnSocketStart.Size = new System.Drawing.Size(88, 24);
			this.btnSocketStart.TabIndex = 18;
			this.btnSocketStart.Text = "Socket啟動";
			this.btnSocketStart.Click += new System.EventHandler(this.btnSocketStart_Click);
			// 
			// tbSocketPort
			// 
			this.tbSocketPort.Location = new System.Drawing.Point(328, 32);
			this.tbSocketPort.Name = "tbSocketPort";
			this.tbSocketPort.Size = new System.Drawing.Size(83, 20);
			this.tbSocketPort.TabIndex = 17;
			this.tbSocketPort.Text = "1234";
			this.tbSocketPort.TextChanged += new System.EventHandler(this.tbSocketPort_TextChanged);
			// 
			// label1
			// 
			this.label1.Location = new System.Drawing.Point(232, 31);
			this.label1.Name = "label1";
			this.label1.Size = new System.Drawing.Size(96, 21);
			this.label1.TabIndex = 16;
			this.label1.Text = "Socket端口號:";
			this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
			// 
			// tbSocketClientsNum
			// 
			this.tbSocketClientsNum.Location = new System.Drawing.Point(112, 32);
			this.tbSocketClientsNum.Name = "tbSocketClientsNum";
			this.tbSocketClientsNum.ReadOnly = true;
			this.tbSocketClientsNum.TabIndex = 15;
			this.tbSocketClientsNum.Text = "";
			// 
			// label3
			// 
			this.label3.Location = new System.Drawing.Point(16, 36);
			this.label3.Name = "label3";
			this.label3.Size = new System.Drawing.Size(97, 16);
			this.label3.TabIndex = 13;
			this.label3.Text = "當前在線用戶:";
			// 
			// ClientSeverForm
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(818, 407);
			this.Controls.Add(this.grpSocket);
			this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
			this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
			this.MinimizeBox = false;
			this.Name = "ClientSeverForm";
			this.Text = "聊天室服務器";
			this.Closing += new System.ComponentModel.CancelEventHandler(this.ClientSeverForm_Closing);
			this.grpSocket.ResumeLayout(false);
			this.ResumeLayout(false);

		}
		#endregion

		/// <summary>
		/// 應用程序的主入口點。
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new ClientSeverForm());
		}

		private string getIPAddress()
		{
			// 獲得本機局域網IP地址
			IPAddress[] AddressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;
			if (AddressList.Length<1)
			{
				return "";
			}
			
			return AddressList[0].ToString();
		} 

		private static string getDynamicIPAddress( )
		{
			// 獲得撥號動態分配IP地址
			IPAddress[] AddressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;
			if (AddressList.Length<2)
			{
				return "";
			}
			
			return AddressList[1].ToString();
		}

		private int getValidPort(string port)
		{
			int lport;

			//測試端口號是否有效
			try
			{
				//是否為空
				if (port=="") 
				{
					throw new ArgumentException(
						"端口號為空,不能啟動服務器");
				}
				lport = System.Convert.ToInt32(port);
			}
			catch (Exception e)
			{
				//ArgumentException, 
				//FormatException, 
				//OverflowException
				Console.WriteLine("無效的端口號:" + e.ToString());
				this.rtbSocketMsg.AppendText("無效的端口號:" + e.ToString()+"\n");
				return -1;
			}
			return lport;
		}

		//當單擊“Socket啟動”按鈕時,便開始監聽指定的Socket端口
		private void btnSocketStart_Click(object sender, System.EventArgs e)
		{
			int port = getValidPort(tbSocketPort.Text);
			if (port<0)
			{
				return;
			}

			string ip = this.getIPAddress();
			try
			{
				IPAddress ipAdd=IPAddress.Parse(ip);
				//創建服務器套接字
				listener=new TcpListener(ipAdd, port);
				//開始監聽服務器端口
				listener.Start();
				this.rtbSocketMsg.AppendText("Socket服務器已經啟動,正在監聽" + 
					ip + " 端口號:" + this.tbSocketPort.Text + "\n");

				//啟動一個新的線程,執行方法this.StartSocketListen,
				//以便在一個獨立的進程中執行確認與客戶端Socket連接的操作
				ClientSeverForm.SocketServiceFlag = true;
				Thread thread=new Thread(new ThreadStart(this.StartSocketListen));
				thread.Start();
				this.btnSocketStart.Enabled = false;
				this.btnSocketStop.Enabled = true;
			}
			catch(Exception ex)
			{
				this.rtbSocketMsg.AppendText(ex.Message.ToString()+"\n");
			}		
		}

		//在新的線程中的操作,它主要用于當接收到一個客戶端請求時,確認與客戶端的連接,
		//并且立刻啟動一個新的線程來處理和該客戶端的信息交互。
		private void StartSocketListen()
		{
			while(ClientSeverForm.SocketServiceFlag)
			{
				try
				{
					//當接收到一個客戶端請求時,確認與客戶端的連接
					if (listener.Pending())
					{
						Socket socket=listener.AcceptSocket();
						if(clients.Count>=MAX_NUM)
						{
							this.rtbSocketMsg.AppendText("已經達到了最大連接數:" + 
								MAX_NUM + ",拒絕新的連接\n");
							socket.Close();
						}
						else
						{
							//啟動一個新的線程,
							//執行方法this.ServiceClient,處理用戶相應的請求
							Client client = new Client(this, socket);
							Thread clientService=new Thread(
								new ThreadStart(client.ServiceClient));
							clientService.Start();
						}
					}
					Thread.Sleep(200);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品天干天干在线综合| 六月丁香婷婷久久| 国产清纯美女被跳蛋高潮一区二区久久w | 色悠久久久久综合欧美99| 国产成人免费av在线| 在线播放中文一区| 欧美日韩国产中文| 欧美日本免费一区二区三区| 欧美日韩一区二区在线观看| 欧洲av在线精品| 欧美性猛交xxxx乱大交退制版 | 成人中文字幕在线| 国产成人精品免费看| 国产精品主播直播| 国产精品911| 高清在线观看日韩| 国产精品99久| www.在线成人| 色琪琪一区二区三区亚洲区| 91极品视觉盛宴| 欧美三区免费完整视频在线观看| 欧亚洲嫩模精品一区三区| 91久久一区二区| 欧美日韩激情一区| 日韩欧美国产系列| 久久久亚洲精品石原莉奈| 久久你懂得1024| 国产三级精品三级| 亚洲欧美怡红院| 亚洲一区二区三区四区五区中文| 亚洲成人av电影| 久久精品国产色蜜蜜麻豆| 国产乱子轮精品视频| 成人精品国产一区二区4080| 91在线看国产| 欧美日韩国产小视频在线观看| 91精品国产一区二区三区蜜臀| 日韩成人免费电影| 精品一区二区三区在线观看| 成人妖精视频yjsp地址| 色婷婷综合在线| 欧美精品777| 久久久国产一区二区三区四区小说| 中文字幕欧美日韩一区| 亚洲综合图片区| 蜜桃视频第一区免费观看| 国产精品69毛片高清亚洲| 99精品在线观看视频| 在线成人av网站| 中国av一区二区三区| 亚洲高清在线精品| 国产一区二区三区不卡在线观看| 97久久精品人人澡人人爽| 欧美日韩另类国产亚洲欧美一级| 欧美mv日韩mv亚洲| 亚洲图片激情小说| 伦理电影国产精品| 91在线视频播放| 精品久久人人做人人爽| 亚洲欧美区自拍先锋| 午夜精品久久久久久久| 粉嫩av一区二区三区| 欧美三级日韩三级| 欧美激情一区二区三区在线| 婷婷综合另类小说色区| 风间由美一区二区三区在线观看| 欧美人伦禁忌dvd放荡欲情| 国产欧美日韩另类一区| 欧美午夜影院一区| 欧美成人免费网站| 亚洲国产综合人成综合网站| 国产盗摄视频一区二区三区| 欧美乱妇15p| 亚洲欧洲综合另类在线 | 91精品黄色片免费大全| 国产精品久久毛片a| 久久成人麻豆午夜电影| 在线欧美小视频| 国产精品狼人久久影院观看方式| 美女性感视频久久| 欧美日韩亚洲另类| 国产精品毛片高清在线完整版| 免费成人你懂的| 欧美日韩在线三级| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 久久超碰97中文字幕| 欧美色电影在线| 亚洲色图在线看| 成人动漫中文字幕| 国产亚洲视频系列| 精品一区精品二区高清| 欧美一区2区视频在线观看| 亚洲午夜久久久久久久久久久| 成人午夜视频免费看| 亚洲精品一区二区三区香蕉| 日韩精品91亚洲二区在线观看| 色94色欧美sute亚洲13| 亚洲私人影院在线观看| 国产成人精品影视| 精品欧美久久久| 美女网站在线免费欧美精品| 91麻豆精品国产| 日韩综合在线视频| 911精品产国品一二三产区| 亚洲一区二区三区四区五区中文| 97久久久精品综合88久久| 国产精品成人午夜| 波波电影院一区二区三区| 亚洲国产精品国自产拍av| 国产黄色精品视频| 国产欧美一区二区精品性色| 国产精品69久久久久水密桃| 久久久久久97三级| 国产精品77777| 亚洲国产成人私人影院tom| 大桥未久av一区二区三区中文| 欧美韩日一区二区三区| 成人aa视频在线观看| 18成人在线观看| 在线影视一区二区三区| 一级精品视频在线观看宜春院| 91国偷自产一区二区三区观看 | 91美女片黄在线观看91美女| 欧美国产日韩精品免费观看| 成人精品视频.| 亚洲欧美日韩国产综合| 欧美三级电影在线观看| 天天色综合天天| 欧美大片国产精品| 国产精品996| 亚洲欧美日韩在线不卡| 欧美日韩中字一区| 老司机精品视频一区二区三区| 精品国产免费一区二区三区四区| 国产精品99久久不卡二区| 日韩美女精品在线| 欧美日韩国产天堂| 韩国精品免费视频| 国产精品国产自产拍在线| 91黄色免费网站| 日本成人在线电影网| 久久久久久久久久看片| 97精品久久久久中文字幕| 亚洲大片精品永久免费| 日韩欧美一二三| www.久久久久久久久| 亚洲va中文字幕| 亚洲精品一区二区三区精华液| 国产 日韩 欧美大片| 亚洲精品亚洲人成人网在线播放| 91精品综合久久久久久| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 日韩成人伦理电影在线观看| 国产亚洲欧洲一区高清在线观看| 色婷婷精品大视频在线蜜桃视频| 丝袜a∨在线一区二区三区不卡| 久久一区二区三区国产精品| 色综合天天综合狠狠| 琪琪久久久久日韩精品| 国产精品国产三级国产| 欧美一区二区成人6969| eeuss影院一区二区三区 | 欧美久久久久久蜜桃| 国产精品一区二区三区乱码| 亚洲国产精品一区二区尤物区| 久久影视一区二区| 欧美日韩一本到| aaa欧美色吧激情视频| 蜜臀久久99精品久久久久宅男| 中文字幕中文字幕一区| 日韩色在线观看| 91成人在线观看喷潮| 国产一区在线精品| 五月天亚洲精品| 亚洲三级在线看| 久久久久久一级片| 欧美一区永久视频免费观看| 色综合婷婷久久| 国产精品88av| 久久精品国产色蜜蜜麻豆| 亚洲国产一二三| 综合网在线视频| 国产无遮挡一区二区三区毛片日本| 亚洲成人av免费| 亚洲三级电影全部在线观看高清| 久久精品人人做人人综合 | 国产精品久久久久久久久久久免费看 | 午夜精品久久久久久久| 国产精品成人在线观看| 久久免费看少妇高潮| 91精品国产综合久久婷婷香蕉 | 国产麻豆成人传媒免费观看| 亚洲成av人**亚洲成av**| 亚洲欧美在线另类| 欧美激情一区二区三区全黄| www久久精品| 精品国产乱码久久久久久老虎 | 91.com在线观看| 欧美私模裸体表演在线观看| 一本大道av伊人久久综合|