📄 cwclient.cpp
字号:
#include "stdhdrs.h"
#include "common.h"
#include "WSockRes.h"
#include "cwclient.h"
int CWClient::ConnectToServer(u_short usPortNo, LPCSTR strServerName,HWND hWndClient)
{
#ifdef _WS_VERBOSE
WS_TRACE0("In ConnectToServer\n");
#endif
m_hWndClient = hWndClient;
sock = socket(AF_INET, SOCK_STREAM,0);
if (sock == INVALID_SOCKET){
WS_TRACE0("ConnectToServer: socket error-");
PrintError();
return WSAGetLastError();
}
dest_sin.sin_family = AF_INET;
PHOSTENT phe;
if (strServerName == NULL){
DWORD dwSize;
char szBuff[128];
dwSize = sizeof(szBuff);
gethostname(szBuff, dwSize);
phe = gethostbyname(szBuff);
} else {
phe = gethostbyname(strServerName);
}
if (phe == NULL){
WS_TRACE0("ConnectToServer: GetHostByName error-");
PrintError();
return WSAGetLastError();
}
memcpy((char FAR*)&(dest_sin.sin_addr), phe->h_addr,phe->h_length);
dest_sin.sin_port = htons(usPortNo);
//or
//PSERVENT pse = getservrbyname(szBuff,"tcp");
//if (pse == NULL)
// return;
//dest_sin.sin_port = pse->s_port;
int SetOpVal = 1;
setsockopt(SOL_SOCKET, SO_DONTLINGER,&SetOpVal,sizeof(SetOpVal));
setsockopt(SOL_SOCKET, SO_KEEPALIVE, &SetOpVal,sizeof(SetOpVal));
WS_TRACE0("ConnectToServer::WSAAsyncSelect\n");
if (IsWindow(m_hWndClient))
WSAAsyncSelect(sock, m_hWndClient, WSA_EVENT, FD_READ | FD_CLOSE | FD_WRITE | FD_CONNECT | FD_OOB);
int err = connect(sock,(PSOCKADDR)&dest_sin, sizeof(dest_sin));
if (err < 0){
WS_TRACE0("ConnectToServer: connect error-");
PrintError();
WS_TRACE0("\n");
if (WSAGetLastError() != WSAEWOULDBLOCK)
return WSAGetLastError();
}
#ifdef _WS_VERBOSE
WS_TRACE0("ConnectToServer: Connected and returning\n");
#endif
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -