-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtcp_server.cpp
More file actions
49 lines (41 loc) · 1.48 KB
/
Copy pathtcp_server.cpp
File metadata and controls
49 lines (41 loc) · 1.48 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
#include<bits/stdc++.h>
#include<winsock2.h>
using namespace std;
int main()
{
WSADATA Winsockdata;
SOCKET TCPServerSocket, sAcceptSocket;
struct sockaddr_in TCPServerAdd, TCPClientAdd;
int iTCPClientAdd = sizeof(TCPClientAdd), iRecv, iSend;
char RecvBuffer[512];
char SenderBuffer[512];
WSAStartup(MAKEWORD(2,2), &Winsockdata);
TCPServerAdd.sin_family = AF_INET;
TCPServerAdd.sin_addr.s_addr = inet_addr("192.168.102.33");
TCPServerAdd.sin_port = htons(8000);
TCPServerSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
bind(TCPServerSocket, (SOCKADDR*)&TCPServerAdd, sizeof(TCPServerAdd));
listen(TCPServerSocket, 2);
sAcceptSocket = accept(TCPServerSocket, (SOCKADDR*)&TCPClientAdd, &iTCPClientAdd);
cout << "Connection Established. Start Chatting!\n";
while (true)
{
// Receive message from the client
iRecv = recv(sAcceptSocket, RecvBuffer, sizeof(RecvBuffer), 0);
if (iRecv > 0)
{
RecvBuffer[iRecv] = '\0';
cout << "Client: " << RecvBuffer << endl;
if (strcmp(RecvBuffer, "exit") == 0) break;
}
// Send message to the client
cout << "Server: ";
cin.getline(SenderBuffer, sizeof(SenderBuffer));
iSend = send(sAcceptSocket, SenderBuffer, strlen(SenderBuffer), 0);
if (strcmp(SenderBuffer, "exit") == 0) break;
}
closesocket(sAcceptSocket);
closesocket(TCPServerSocket);
WSACleanup();
return 0;
}