-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSocket.cpp
More file actions
56 lines (49 loc) · 1.28 KB
/
Socket.cpp
File metadata and controls
56 lines (49 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/*****************************
2015 <adocilesloth@gmail.com>
*****************************/
#include "TS3Plugin.h"
#include <sstream>
using namespace std;
bool ConnectToHost(int port, char* adrs, SOCKET& sock)
{
WSADATA wsadata;
int error = WSAStartup(0x0202, &wsadata); //error on startup?
if(error)
{
AppWarning(TEXT("error"));
return false;
}
if (wsadata.wVersion != 0x0202) //error check winsock version
{
AppWarning(TEXT("!= 0x0202"));
WSACleanup(); //Clean up Winsock
return false;
}
SOCKADDR_IN target; //Socket address information
target.sin_family = AF_INET; //address family Internet
target.sin_port = htons (port); //Port to connect on
target.sin_addr.s_addr = inet_addr (adrs); //Target IP
sock = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); //Create socket
if (sock == INVALID_SOCKET)
{
AppWarning(TEXT("INVALID_SOCKET"));
return false; //Couldn't create the socket
}
if (connect(sock, (SOCKADDR *)&target, sizeof(target)) == SOCKET_ERROR) //connect
{
return false; //Couldn't connect
}
else
{
return true; //Success
}
}
void CloseConnection(SOCKET& sock)
{
//Close the socket if it exists
if(sock)
{
closesocket(sock);
}
WSACleanup(); //Clean up Winsock
}