⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stateobject.cs

📁 c#网络编程及应用-刘瑞新
💻 CS
字号:
using System;

using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Text;

namespace Game2DServer
{
	/// <summary>
	/// StateObject 的摘要说明。
	/// </summary>
	public class StateObject
	{
		public Socket workSocket=null;
		public const int BufferSize=1024;
		public byte[] buffer=new byte[BufferSize];
		public StringBuilder sb=new StringBuilder();
		public StateObject()
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
		}
	}
}



/* 以下内容为异步用	
 * 	private void AcceptCallback(IAsyncResult ar)
		{
			Done.Set();//设为终止
			Socket listener=(Socket) ar.AsyncState;  //获取状态
			sock1=listener.EndAccept(ar);
			StateObject state=new StateObject();
			state.workSocket=sock1;
			this.richTextBox1.AppendText("与客户建立连接.\r\n");
			try
			{
				byte[] byteData=System.Text.Encoding.BigEndianUnicode.GetBytes("准备完毕,可以通话\r\n");
				sock1.BeginSend(byteData,0,byteData.Length,0,new AsyncCallback(SendCallback),sock1);
			}
			catch(Exception err)
			{
				this.richTextBox1.AppendText(err.Message);
			}
			Thread thread=new Thread(new ThreadStart(rec));
			thread.Start();
		}

		private void SendCallback(IAsyncResult ar)
		{
			try
			{
				sock1=(Socket)ar.AsyncState;
				int bytesSent=sock1.EndSend(ar);
			}
			catch{}
		}

		private void rec()
		{
			StateObject state=new StateObject();
			state.workSocket=sock1;
			sock1.BeginReceive(state.buffer,0,StateObject.BufferSize,0,new AsyncCallback(ReadCallback),state);
		}

		private void ReadCallback(IAsyncResult ar)
		{
			StateObject state=(StateObject)ar.AsyncState;
			Socket tt=state.workSocket;
			int bytesRead=sock1.EndReceive(ar);
			state.sb.Append(System.Text.Encoding.BigEndianUnicode.GetString(state.buffer,0,bytesRead));
			string content=state.sb.ToString();
			state.sb.Remove(0,content.Length);
			this.richTextBox1.AppendText(content+"\r\n");
			tt.BeginReceive(state.buffer,0,StateObject.BufferSize,0,new AsyncCallback(ReadCallback),state);
		}

*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -