读书人

c# socket链接测试工具的有关问题

发布时间: 2013-09-25 11:02:58 作者: rapoo

c# socket链接测试工具的问题
写了一个socket链接的小程序,本来是要做并发连接数的检查的,现在不知道是哪里的问题,在循环创建链接的时候一次性创建大于1800个链接的时候出现链接没有正常连上去的问题,而且能连上去的只有一百多个,不知道大家有没有这方面的问题,还是程序处理太快了,服务器不响应了,导致我的链接断开了。
请高手指教,谢谢!


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("192.168.5.196"), 7010);
for (int i = 1; i < 1800; i++)
{
Socket socket = new Socket(ipep.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

socket.Connect("192.168.5.196", 7010);
if (socket.Connected)
{
Console.WriteLine("连接成功"+i);
}
}
Console.ReadLine();
for (int i = 1; i < 1800; i++)
{
Socket socket = new Socket(ipep.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

socket.Connect("192.168.5.196", 7010);
if (socket.Connected)


{
Console.WriteLine("连接成功" + i);
}
}
Console.ReadLine();
}
}
}


[解决办法]
socket服务器是可以设置并发上限的,如果满了,就会进入等待队列,超时不处理就断了~~你最好给出服务端的代码

还有,你怎么测试真是强大~~加个List<Socket>来保存好点,一是维持状态,二是测试完后作正常断开处理

读书人网 >C#

热点推荐