Merge branch 'master' of git.ucc.asn.au:/matches/honours
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / Networking / Simple / Client.cpp
1 //////////////////////////////////////////////\r
2 // Client.cpp\r
3 \r
4 #include <iostream>\r
5 #include <string>\r
6 #include "winsock2.h"\r
7 #include "socket.h"\r
8 \r
9 using namespace std;\r
10 using namespace Win32xx;\r
11 \r
12 \r
13 class CClientSocket : public CSocket\r
14 {\r
15 public:\r
16         CClientSocket() {}\r
17         virtual void OnReceive()\r
18         {\r
19                 // This function is called automatically when there is data to receive\r
20                 char str[1024] = {0};\r
21                 int i = Receive(str, 1024, 0);\r
22 \r
23                 cout << i << " chars received: " << str << endl;\r
24         }\r
25 };\r
26 \r
27 int main()\r
28 {\r
29         CClientSocket Client;\r
30 \r
31         // Create the socket to communicate with the Server\r
32         if (!Client.Create(AF_INET, SOCK_STREAM))\r
33         {\r
34                 cout << "Failed to create socket\n" ;\r
35                 return 0;\r
36         }\r
37 \r
38         // Connect to the server\r
39         if (SOCKET_ERROR == Client.Connect("127.0.0.1", "3000"))\r
40         {\r
41                 cout << "Failed to connect to server. Was it running?\n";\r
42                 return 0;\r
43         }\r
44         cout << "Connected to server.\n";\r
45         cout << "Type data to send, type quit to exit\n";\r
46 \r
47         // Monitor the client socket for network events, such as data ready to receive\r
48         Client.StartEvents();\r
49 \r
50         // Send data to the server\r
51         string s;\r
52         for (;;)        // Infinite loop\r
53         {\r
54                 getline(cin, s);\r
55                 if (s == "quit") break;\r
56                 int i = Client.Send(s.c_str(), (int)s.length(), 0);\r
57                 cout << "Sending  " << i << " characters\n";\r
58         }\r
59 \r
60         return 0;\r
61 }\r
62 \r

UCC git Repository :: git.ucc.asn.au