zoukankan      html  css  js  c++  java
  • 生成随机端口函数

    这个函数用来生成一个随机端口,可以生成一个没有被占用的端口。

    //生成随机端口
    DWORD GenerateRandomPort()
    {
    	int nStartPort = 1000;
    	int nEndPort = 10000;
    	FD_SET fd_Write;
    	SOCKET s;
    	struct sockaddr_in server;
    	struct timeval tp = { 0 };
    	int ret = 0;
    	unsigned long mode = 1; 
    	tp.tv_sec = 0;  
    	tp.tv_usec = 50; 
    	FD_ZERO(&fd_Write);  
    	server.sin_family = AF_INET;
    	server.sin_addr.s_addr = inet_addr("127.0.0.1");
    	for(nStartPort; nStartPort != nEndPort; ++nStartPort)
    	{
    		s=socket(AF_INET,SOCK_STREAM, IPPROTO_TCP);
    		FD_SET(s, &fd_Write);
    		ioctlsocket(s, FIONBIO, &mode); 
    		server.sin_port=htons(nStartPort);
    		connect(s,(struct sockaddr *)&server,sizeof(server));
    		ret=select(0, NULL, &fd_Write, NULL, &tp);  
    		if(0 == ret || -1 == ret)
    		{
    			closesocket(s);
    			WSACleanup();
    			return nStartPort;
    		}
    		closesocket(s);
    	}
    	WSACleanup();
    	return nStartPort;
    }
    

  • 相关阅读:
    线程安全
    Thread 的join方法
    守护线程和用户线程
    LinkedList封装
    System.arraycopy的测试
    ArrayList封装
    常用算法
    Java并发---concurrent包
    Java并发--三大性质
    Java并发--final关键字
  • 原文地址:https://www.cnblogs.com/lebronjames/p/1864325.html
Copyright © 2011-2022 走看看