Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <WS2tcpip.h>
- #include <sstream>
- #include <Windows.h>
- #pragma comment(lib, "ws2_32.lib")
- int main()
- {
- std::string ipAddress = "127.0.0.1"; // IP Address of the server
- int port = 54000; // Listening port # on the server
- WSAData data;
- WORD ver = MAKEWORD(2, 2);
- int wsResult = WSAStartup(ver, &data);
- if (wsResult != 0)
- {
- std::cerr << "Can't start winsock, Error #" << wsResult << std::endl;
- return -1;
- }
- SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
- if (sock == INVALID_SOCKET)
- {
- std::cerr << "Can't create socket, Error #" << WSAGetLastError() << std::endl;
- WSACleanup();
- return -2;
- }
- sockaddr_in hint;
- hint.sin_family = AF_INET;
- hint.sin_port = htons(port);
- inet_pton(AF_INET, ipAddress.c_str(), &hint.sin_addr);
- int connResult = connect(sock, (sockaddr*)&hint, sizeof(hint));
- if (connResult == SOCKET_ERROR)
- {
- std::cerr << "Can't connect to server, Err #" << WSAGetLastError() << std::endl;
- closesocket(sock);
- }
- char buf[4096];
- std::cout << "Socket name: " << sock << std::endl;
- std::ostringstream socketNameStream;
- socketNameStream << "N" << sock << "\r\n";
- std::string socketName = socketNameStream.str();
- int sendResult = send(sock, socketName.c_str(), socketName.size() + 1, 0);
- if (sendResult != SOCKET_ERROR)
- {
- ZeroMemory(buf, 4096);
- int bytesreceived = recv(sock, buf, 4096, 0);
- if (bytesreceived > 0)
- {
- std::cout << "SERVER> " << std::string(buf, 0, bytesreceived) << std::endl;
- }
- }
- while (true) {
- ZeroMemory(buf, 4096);
- int bytesReceived = recv(sock, buf, 4096, 0);
- if (bytesReceived > 0)
- {
- std::cout << "SERVER> " << std::string(buf, 0, bytesReceived) << std::endl;
- if (buf[0] == 'P') {
- std::string okMsg = "OK";
- send(sock, okMsg.c_str(), okMsg.size() + 1, 0);
- Sleep(100);
- closesocket(sock);
- WSACleanup();
- }
- }
- }
- closesocket(sock);
- WSACleanup();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement