multithreaddealscoket.~cpp

来自「使用vc++6.0开发的一个支持多线程ftp程序」· ~CPP 代码 · 共 57 行

~CPP
57
字号
//---------------------------------------------------------------------------


#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 + =
减小字号Ctrl + -
显示快捷键?