下面是一个创建SOCKET监听的类
用此类创建监听,第一次连接可以成功。但是第二次就失败了,
错误提示是“未从此类上对应的异步方法中返回IAsyncResult对象”
class Program
{
static void Main(string[] args)
{
MySocket s = new MySocket();
s.CreatMonitor();
Console.ReadLine();
}
}
class MySocket
{
private int port = 10000;
/// <summary>
/// 创建一个监听端口
/// </summary>
public void CreatMonitor()
{
Socket acceptSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress localHost = Dns.GetHostAddresses(Dns.GetHostName())[0];
IPEndPoint localPoint = new IPEndPoint(localHost, port);
acceptSocket.Bind(localPoint);
acceptSocket.Listen(200);
acceptSocket.BeginAccept(new AsyncCallback(AcceptCallBack), acceptSocket); //开始接受连接
}
/// <summary>
/// 有连接进入后执行的方法
/// </summary>
/// <param name="ar"></param>
private void AcceptCallBack(IAsyncResult ar)
{
Socket acceptSocket = (Socket)ar.AsyncState;
try
{
Console.WriteLine("有一个连接进入");
Socket receiveS = acceptSocket.EndAccept(ar); //第二次连接时,会在这里出问题
acceptSocket.BeginAccept(new AsyncCallback(AcceptCallBack), receiveS);
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
}
用此类创建监听,第一次连接可以成功。但是第二次就失败了,
错误提示是“未从此类上对应的异步方法中返回IAsyncResult对象”
class Program
{
static void Main(string[] args)
{
MySocket s = new MySocket();
s.CreatMonitor();
Console.ReadLine();
}
}
class MySocket
{
private int port = 10000;
/// <summary>
/// 创建一个监听端口
/// </summary>
public void CreatMonitor()
{
Socket acceptSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress localHost = Dns.GetHostAddresses(Dns.GetHostName())[0];
IPEndPoint localPoint = new IPEndPoint(localHost, port);
acceptSocket.Bind(localPoint);
acceptSocket.Listen(200);
acceptSocket.BeginAccept(new AsyncCallback(AcceptCallBack), acceptSocket); //开始接受连接
}
/// <summary>
/// 有连接进入后执行的方法
/// </summary>
/// <param name="ar"></param>
private void AcceptCallBack(IAsyncResult ar)
{
Socket acceptSocket = (Socket)ar.AsyncState;
try
{
Console.WriteLine("有一个连接进入");
Socket receiveS = acceptSocket.EndAccept(ar); //第二次连接时,会在这里出问题
acceptSocket.BeginAccept(new AsyncCallback(AcceptCallBack), receiveS);
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
}
解决方案 »
- C# 利用正则表达式如何从一个HTML文档中抽取模板
- C# 我做一个数据库的程序 用什么方法连接数据库比较好
- 各位大侠有关window.showModalDialog("openChild.aspx")问题请教一下
- 求windows应用程序的小球游戏的问题解决?
- 关于sql查询的问题
- C#连接Orcale进行数据库读取
- 关于货币格式的问题
- 求助:textbox控件赋值的问题.在线等,谢谢.
- (C#)关于WINFORM下将DATAGRID中数据导出为EXCEL的问题
- 研究sharpdevelop结构
- 请问怎么在listview中加入图片?
- ((DataRowView)Container.DataItem)是什么意思?
****************************
* 多用王字的囯或原國字,少用玉字的国 *
* 玉字的国字是由日本的汉字中拿來用的 *
****************************