Есть сервер, уже отлаженый
Открывает порт ловит входящие акцептирует и передает акцептированый сокет другому потоку который ведет по нему обмен.
Есть клиент на бейсике котрый через компонент winsock2 нормально сним работает...
Теперь хочу сделать сишый клиент и имею трабл конектися, сервер акцептирует, первая посылка проходит и все ни каких ошибок, клиент через send чесно каждые 10 секунд продолжает посылать запросы но на сервере они не приходят ( не возникает события ).
Инициация сокета
SOCKET CDLS_DAC::OpenAndConnect(CString ServerName, int Port, int SocketType)
{
SOCKET ConnSocket;
LPHOSTENT hp;
SOCKADDR_IN ServerAddr;
ConnSocket = socket(AF_INET, SocketType, IPPROTO_TCP); /* Open a socket */
if (ConnSocket <0 ) {
return INVALID_SOCKET;
}
memset(&ServerAddr, 0, sizeof(ServerAddr));
ServerAddr.sin_family = AF_INET;
ServerAddr.sin_port = htons(Port);
/* if (isalpha(ServerName[0])) {
hp = gethostbyname(ServerName);
if (hp == NULL) {
return INVALID_SOCKET;
}
ServerAddr.sin_addr.s_addr = hp->h_addr;
} else {
*/
ServerAddr.sin_addr.s_addr = inet_addr(ServerName);
// } acsept
if (connect(ConnSocket, (LPSOCKADDR)&ServerAddr, sizeof(ServerAddr)) == SOCKET_ERROR)
{
closesocket(ConnSocket);
return INVALID_SOCKET;
}
send( this->sSoc ,(char *)&p_Pak,sizeof dls_Query_Pak ,0);
return ConnSocket;
while (isRun)
{
sSoc=OpenAndConnect(Server_IP,Server_Port,SOCK_STREAM);
if(sSoc !=INVALID_SOCKET)
{
isConnect=true;
while (isConnect)
{
int i;
//..... Сборка пакета
if(send( this->sSoc ,(char *)&m_Pak,sizeof dls_Query_Pak ,0)==SOCKET_ERROR )
{
int d=WSAGetLastError();
printf("\n\nDAC Socket Error [%d]\n",d) ;
isConnect=false
}
WFSO(Ev,10000)/// задержка на 10 мин
}
}
}