|  | @@ -331,7 +331,12 @@ bool CSATTCPServer::_InitializeListenSocket(unsigned int port)
 | 
	
		
			
				|  |  |  	// 这里可以绑定任何可用的IP地址,或者绑定一个指定的IP地址 
 | 
	
		
			
				|  |  |  	ServerAddress.sin_addr.s_addr = htonl(INADDR_ANY);                      
 | 
	
		
			
				|  |  |  	//ServerAddress.sin_addr.s_addr = inet_addr(m_strIP.GetString());         
 | 
	
		
			
				|  |  | -	ServerAddress.sin_port = htons(port);                          
 | 
	
		
			
				|  |  | +	ServerAddress.sin_port = htons(port);        
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	// SO_REUSEADDR:端口复用,可以让n个套接字绑定在一个端口上;
 | 
	
		
			
				|  |  | +	// 将套接字属性设置为 SO_REUSEADDR (允许套接口和一个已在使用中的地址捆绑),可以解决绑定失败问题
 | 
	
		
			
				|  |  | +	BOOL bReuseaddr = TRUE;
 | 
	
		
			
				|  |  | +	setsockopt(m_pListenContext->m_Socket,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	// 绑定地址和端口
 | 
	
		
			
				|  |  |  	if (SOCKET_ERROR == ::bind(m_pListenContext->m_Socket, (struct sockaddr *) &ServerAddress, sizeof(ServerAddress))) 
 |