⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multithreaddealscoket.~cpp

📁 使用vc++6.0开发的一个支持多线程ftp程序
💻 ~CPP
字号:
//---------------------------------------------------------------------------


#pragma hdrstop

#include "MultiThreadDealScoket.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)
__fastcall  MultiThreadDealSocket::MultiThreadDealSocket()
{

}
SOCKET __fastcall MultiThreadDealSocket::GetConnect(String host ,int port)
{
    SOCKET client;
    WORD version;
    SOCKADDR_IN sockStruct;
    version = MAKEWORD(2,2);
    WSADATA wsaData;
    int err = WSAStartup(version, &wsaData );
    if ( err != 0 ) {
        return NULL;
      }
    client = socket(PF_INET,SOCK_STREAM,0);
    DWORD dwip;
    if((dwip=inet_addr(addr.c_str()))==INADDR_NONE) //如果是ip地址
    {
	struct hostent *hp = NULL;
	if ((hp = gethostbyname(addr.c_str())) != NULL)
	{
		memcpy(&(sockStruct.sin_addr), hp->h_addr, hp->h_length);
		sockStruct.sin_family = hp->h_addrtype;
		//sockStruct.sin_family = AF_INET;
	       //	TRACE("sockaddr.sin_addr = %s\n", inet_ntoa(sockStruct.sin_addr));
	}
	else
	{
		//TRACE("gethostbyname() failed: %d\n",
		WSAGetLastError();
		return NULL ;
	}
    }
    else
    {
		sockStruct.sin_family=AF_INET; //使用TCP/IP协议
		sockStruct.sin_addr.S_un.S_addr = dwip;	
    }
   sockStruct.sin_port = htons(port);
   if(connect(client,(LPSOCKADDR)&sockStruct,sizeof(sockStruct)) == SOCKET_ERROR)
    {
       return NULL ;
    }
    return client;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -