Created
February 24, 2014 20:03
-
-
Save xnimorz/9195886 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "stdafx.h" | |
#include <WinSock2.h> | |
#include <iostream> | |
#include <conio.h> | |
#define BUFSIZE 1024 | |
using namespace std; | |
int _tmain(int argc, _TCHAR* argv[]) | |
{ | |
WORD wVersion = MAKEWORD(1, 1); | |
WSAData wsaData; | |
WSAStartup(wVersion, &wsaData); | |
SOCKET s; | |
s = socket(AF_INET, SOCK_DGRAM, 0); | |
char buf[BUFSIZE]; | |
cout << "Input ip-address:" << endl; | |
cin >> buf; | |
sockaddr_in sin; | |
sin.sin_family = AF_INET; | |
sin.sin_addr.s_addr = inet_addr(buf); | |
sin.sin_port = htons(3245); | |
int sin_len = sizeof(sin); | |
cout << "Client started" << endl; | |
int i = 0, rcv_len, snd_len; | |
while (i++ < 3) | |
{ | |
cout << "Input word:" << endl; | |
cin >> buf; | |
snd_len = sendto(s, buf, strlen(buf) + 1, 0, (SOCKADDR*)&sin, sin_len); | |
if (snd_len > 0) | |
{ | |
cout << "Sended message: " << buf << endl; | |
rcv_len = recvfrom(s, buf, BUFSIZE - 1, 0, (SOCKADDR*)&sin, &sin_len); | |
if (rcv_len > 0) | |
{ | |
buf[rcv_len] = 0; | |
cout << "Recieved messsage: " << buf << endl; | |
} | |
else | |
{ | |
cout << "Recieving. Error code: " << WSAGetLastError() << endl; | |
break; | |
} | |
} | |
else | |
{ | |
cout << "Sending. Error code: " << WSAGetLastError() << endl; | |
break; | |
} | |
} | |
closesocket(s); | |
WSACleanup(); | |
_getch(); | |
return 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "stdafx.h" | |
#include <WinSock2.h> | |
#include <iostream> | |
#include <conio.h> | |
#define BUFSIZE 1024 | |
using namespace std; | |
int _tmain(int argc, _TCHAR* argv[]) | |
{ | |
WORD wVersion = MAKEWORD(1, 1); | |
WSAData wsaData; | |
WSAStartup(wVersion, &wsaData); | |
SOCKET s; | |
s = socket(AF_INET, SOCK_DGRAM, 0); | |
sockaddr_in sin; | |
sin.sin_family = AF_INET; | |
sin.sin_addr.s_addr = htonl(INADDR_ANY); | |
sin.sin_port = htons(3245); | |
if (bind(s, (SOCKADDR*)&sin, sizeof(sin)) != 0) | |
{ | |
cout << "Binding. Error code: " << WSAGetLastError() << endl; | |
_getch(); | |
return -1; | |
} | |
cout << "Server started" << endl; | |
char buf[BUFSIZE]; | |
sockaddr_in sin_clt; | |
int len_clt = sizeof(sockaddr); | |
int i = 0, rcv_len, snd_len; | |
while (i++ < 3) | |
{ | |
int rcv_len = recvfrom(s, buf, BUFSIZE - 1, 0, (SOCKADDR*)&sin_clt, &len_clt); | |
if (rcv_len > 0) | |
{ | |
buf[rcv_len] = 0; | |
cout << "Recieved message: " << buf << endl; | |
_strupr_s(buf, strlen(buf) + 1); | |
snd_len = sendto(s, buf, strlen(buf) + 1, 0, (SOCKADDR*)&sin_clt, len_clt); | |
if (snd_len > 0) | |
cout << "Sended message: " << buf << endl; | |
else | |
{ | |
cout << "Sending. Error code: " << WSAGetLastError() << endl; | |
break; | |
} | |
} | |
else | |
{ | |
cout << "Recieving. Error code: " << WSAGetLastError() << endl; | |
break; | |
} | |
} | |
closesocket(s); | |
WSACleanup(); | |
_getch(); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment