111,092
社区成员




public class Class1
{
public Class1()
{
TcpListener xx = new TcpListener(IPAddress.Any, 8);
xx.Server.SetSocketOption();//那边展示给你如何设置他
xx.Server.Listen(100);
}
public async Task accept(TcpListener tcpserver)
{
while (true)
{
var clientsocket = await tcpserver.AcceptSocketAsync();
}
}
public async Task handChildSocket(Socket clientsocket)
{
clientsocket.SetSocketOption(); //还是那边告诉你的如何处理
var receivetask = Receive(clientsocket);
var sendtask = send(clientsocket); //send我不想展示了
await Task.WhenAll(receivetask, sendtask);
}
public async Task Receive(Socket clientsocket)
{
while (true)
{
try
{
var r =await clientsocket.ReceiveAsync();//如何处理接收我也不想写,都是常规动作
//如同那个文章所说,因为你启用了keepalive机制,并且修改了默认配置,那么当异常断线的时候,超过你配置的时间后,他会自动启动一个在线探测,当探测失败他会自动异常
}
catch (Exception e)
{
//异常了就close他,shutdown他,根本就无需搞啥你说的我要删除什么的操作
clientsocket.Close();
clientsocket.Shutdown();
}
}
}
}