-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtcpsocket.cpp
More file actions
71 lines (55 loc) · 1.2 KB
/
tcpsocket.cpp
File metadata and controls
71 lines (55 loc) · 1.2 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
57
58
59
60
61
62
63
64
65
66
67
68
#include "predef.h"
#include "tcpsocket.h"
#include "logger.h"
TCP_Socket::TCP_Socket()
{
}
TCP_Socket::~TCP_Socket()
{
}
void TCP_Socket::init()
{
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1)
{
Logger::log(-1, "Could not create socket\n");
return ;
}
std::string serveradd = MemDB::getInstance()->getValue("serveraddress");
if (serveradd == "")
serveradd = serveraddress;
Logger::log(-1, "server address : %s\n", serveradd.c_str());
memset((void*)&server, 0x00, sizeof(server));
server.sin_addr.s_addr = inet_addr(serveradd.c_str());
server.sin_family = AF_INET;
server.sin_port = htons(SERVER_PORT);
int flag = 1;
int ret = setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (char*)&flag, sizeof(flag));
if (ret == -1)
{
Logger::log(-1, "socket Setoption. Error!\n");
return;
}
}
bool TCP_Socket::connect()
{
int err = ::connect(sock, (struct sockaddr*)&server, sizeof(server));
if (err < 0)
{
Logger::log(-1, "connect failed. Error!\n");
return false;
}
return true;
}
int TCP_Socket::update(char* buf)
{
return 1;
}
int TCP_Socket::send(char* buf)
{
return ::send(sock, buf, TCP_BUFFER, 0);
}
int TCP_Socket::recv(char* buf)
{
return ::recv(sock, buf, TCP_BUFFER, 0);
}