Start work on network client

This commit is contained in:
Adam Honse 2020-04-21 23:54:06 -05:00
parent 2625807c1a
commit dff667751b
3 changed files with 147 additions and 73 deletions

View file

@ -271,72 +271,9 @@ void net_port::tcp_close()
connected = false;
}
int net_port::tcp_listen(char * recv_data, int /*length*/)
int net_port::tcp_listen(char * recv_data, int length)
{
int ret = 0;
int len = 0;
int tot = 0;
timeval waitd;
fd_set readfd;
FD_ZERO(&readfd);
FD_SET(sock, &readfd);
if (connected)
{
while(ret != sizeof(len))
{
waitd.tv_sec = 10;
waitd.tv_usec = 0;
if (select(sock + 1, &readfd, NULL, NULL, &waitd))
{
ret = recv(sock, (char *)&len, sizeof(len), 0);
if (ret == -1 || ret == 0)
{
closesocket(sock);
connected = false;
return(0);
}
}
else
{
closesocket(sock);
connected = false;
return(0);
}
}
ret = 0;
while(tot != len)
{
waitd.tv_sec = 10;
waitd.tv_usec = 0;
if (select(sock + 1, &readfd, NULL, NULL, &waitd))
{
ret = recv(sock, recv_data + ret, len - ret, 0);
if (ret == -1 || ret == 0)
{
closesocket(sock);
connected = false;
return(0);
}
tot += ret;
}
else
{
closesocket(sock);
connected = false;
return(0);
}
}
}
return(ret);
return(read(sock, recv_data, length));
}
int net_port::tcp_client_write(char * buffer, int length)