111,129
社区成员
发帖
与我相关
我的任务
分享
private void Receive(Socket client)
{
//构造容器state
StateObject state = new StateObject();
state.worksocket = client;
//从远程目标接收数据
try
{
client.BeginReceive(state.buffer, 0, StateObject.buffersize, 0, new AsyncCallback(ReceiveCallBack), state);
}
catch (Exception ex)
{
// Stop();
Console.WriteLine(ex.ToString());
}
// Thread.Sleep(1000);
}
/// <summary>
/// 异步接收
/// </summary>
/// <param name="ar"></param>
private void AcceptCallback(IAsyncResult ar)
{
try
{
Socket client = (Socket)ar.AsyncState;
Socket handler = client.EndAccept(ar);
// Session newSession = new Session(client);
//event_Receive.Set();
Console.WriteLine("连接成功....");
Console.WriteLine(_Socket.LocalEndPoint.ToString());
Console.WriteLine(handler.RemoteEndPoint.ToString());
Receive(handler);
_Socket.BeginAccept(new AsyncCallback(AcceptCallback), _Socket);//等等下一个连接
// Thread.Sleep(1000);
}
catch
{
_Socket.Close();
}
}
public class StateObject
{
public Socket worksocket = null;
public const int buffersize = 1024;
public byte[] buffer = new byte[buffersize];
// public byte[] sendbuffer=new byte[buffersize];
public StringBuilder sb = new StringBuilder();
public StateObject()
{
}
}