Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于快速创建到多个服务器的多个套接字连接的脚本_Java_Python_Shell_Tcp_Network Programming - Fatal编程技术网

Java 用于快速创建到多个服务器的多个套接字连接的脚本

Java 用于快速创建到多个服务器的多个套接字连接的脚本,java,python,shell,tcp,network-programming,Java,Python,Shell,Tcp,Network Programming,我在文件中有一个服务器地址列表,如下所示: 192.168.1.100 192.168.1.101 192.168.1.102 ... 192.168.1.200 我想写一个程序,创建从一台PC客户端到所有这些服务器的多个套接字连接(使用相同的源IP、源端口和目标端口),以使调制解调器的NAT表充满 有人能给我推荐最有效的方法吗?因为如果我有一个7K服务器IP地址的列表,我希望套接字连接的数量应该快速增加到7K,例如,在5分钟后(我只想模拟TCP攻击)。我写了一个python脚本,但它的速度非

我在文件中有一个服务器地址列表,如下所示:

192.168.1.100
192.168.1.101
192.168.1.102
...
192.168.1.200
我想写一个程序,创建从一台PC客户端到所有这些服务器的多个套接字连接(使用相同的源IP、源端口和目标端口),以使调制解调器的NAT表充满


有人能给我推荐最有效的方法吗?因为如果我有一个7K服务器IP地址的列表,我希望套接字连接的数量应该快速增加到7K,例如,在5分钟后(我只想模拟TCP攻击)。我写了一个python脚本,但它的速度非常慢,我的期望是,您应该能够以非阻塞方式发出7K连接,然后等待它们。假设它们都成功了,那么它们的等待时间将重叠。这将导致更小的总体延迟

换言之,请尝试以下方法:

for (i = 0; i < 7000; ++i) {
  // Create socket
  sock_array[i] = socket(PF_INET, SOCK_STREAM, 0);
  // Set socket non-blocking
  flags = fcntl(sock_array[i], F_GETFL, 0);
  fcntl(sock_array[i], F_SETFL, flags | O_NONBLOCK);
  // Do the connect
  connect(sock_array[i], &sock_addr[i], sizeof sock_addr[i]);
}
for (i = 0; i < 7000; ++i) {
  // Find out if connect completed.
  getsockopt(s, SOL_SOCKET, SO_ERROR, &err, &len);
  // Assuming err == 0, your connect to i-th host is done
}
(i=0;i<7000;++i)的
{
//创建套接字
sock_数组[i]=socket(PF_INET,sock_STREAM,0);
//设置套接字不阻塞
flags=fcntl(sock_数组[i],F_GETFL,0);
fcntl(sock_数组[i],F_SETFL,flags | O_NONBLOCK);
//连接吗
连接(sock_数组[i]、&sock_地址[i]、sock_地址[i]的大小);
}
对于(i=0;i<7000;++i){
//查看连接是否已完成。
getsockopt(s、SOL\u SOCKET、SO\u ERROR、err和len);
//假设err==0,您与第i个主机的连接完成
}

实际上,在第一个循环中,您会将每个套接字添加到
fd_集合
,并使用
select
确定每个
连接
何时完成(成功或失败)。创建所有连接所需的时间应以建立时间最长的连接为界限。(添加错误处理等)我想延迟是因为等待时间。您可以使用
threading
modulethanks在python中等待连接时执行代码。我试试看。谢谢。我试试看。实际上,我不需要等待连接建立。只需尝试创建到服务器的连接