Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <winsock.h>
- #include <iostream>
- using namespace std;
- void UDPServer(short nPort);
- int main()
- {
- WORD wVersionRequested = MAKEWORD(2,2);
- WSADATA wsadata;
- int nRet;
- short nPort;
- cout << "Serwer UDP" << endl;
- cout << "Podaj nr portu, na ktorym mam nasluchiwac: ";
- cin >> nPort;
- nRet = WSAStartup(wVersionRequested, &wsadata);
- if(wsadata.wVersion != wVersionRequested)
- {
- cout << "WSADATA error: " << WSAGetLastError() << endl;
- return -1;
- }
- UDPServer(nPort);
- WSACleanup();
- cin.get();
- return 0;
- }
- void UDPServer(short nPort)
- {
- SOCKET serversocket;
- serversocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
- if(serversocket == INVALID_SOCKET)
- {
- cout << "SOCKET error: " << WSAGetLastError() << endl;
- return;
- }
- SOCKADDR_IN serveraddr;
- serveraddr.sin_family = AF_INET;
- serveraddr.sin_addr.s_addr = INADDR_ANY;
- serveraddr.sin_port = htons(nPort);
- int nRet;
- nRet = bind(serversocket, (LPSOCKADDR)&serveraddr, sizeof(struct sockaddr));
- if(nRet == SOCKET_ERROR)
- {
- cout << "bind() error: " << WSAGetLastError() << endl;
- closesocket(serversocket);
- return;
- }
- char Buffer[256];
- nRet = gethostname(Buffer, sizeof(Buffer));
- if(nRet == SOCKET_ERROR)
- {
- cout << "gethostname() error: " << WSAGetLastError() << endl;
- closesocket(serversocket);
- return;
- }
- cout << "Server o nazwie " << Buffer << " nasluchuje na porcie: " << nPort << endl;
- SOCKADDR_IN clientaddr;
- int nLength = sizeof(SOCKADDR);
- memset(Buffer, 0, sizeof(Buffer));
- nRet = recvfrom(serversocket, Buffer, sizeof(Buffer), 0, (LPSOCKADDR)&clientaddr, &nLength);
- if(nRet == SOCKET_ERROR)
- {
- cout << "recvfrom() error: " << WSAGetLastError << endl;
- closesocket(serversocket);
- return;
- }
- cout << "Dane otrzymane od klienta: " << Buffer << endl;
- cout << "Wpisz komunikat zwrotny: ";
- char Message[256];
- cin >> Buffer;
- nRet = sendto(serversocket, Message, strlen(Message), 0, (LPSOCKADDR)&clientaddr, nLength);
- if(nRet == SOCKET_ERROR)
- {
- cout << "sendto() error: " << WSAGetLastError() << endl;
- closesocket(serversocket);
- return;
- }
- closesocket(serversocket);
- cin.get();
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement