📄 multithreaddealscoket.~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 + -