下面代码可以直接运行(需要在属性中更改C++的SDL检查,关掉就好了)
其实是非常简单的。
代码如下:
#include <iostream>
#include <winsock2.h>
using namespace std;
#pragma comment(lib, "WS2_32.lib")
int main() {
WSADATA data;
WORD w = MAKEWORD(
2,
0);
::WSAStartup(w, &data);
char sztext[] =
"Welcome\n";
SOCKET s;
s = ::socket(AF_INET, SOCK_DGRAM,
0);
sockaddr_in addr, addr2;
int n =
sizeof(sztext);
char buff[
10] = {
0 };
addr.sin_family = AF_INET;
addr.sin_port = htons(
75);
addr.sin_addr.S_un.S_addr = inet_addr(
"127.0.0.1");
::bind(s, (sockaddr*)&addr,
sizeof(addr));
cout <<
"UDP Server is Working!\n";
while (
1) {
if (::recvfrom(s, buff,
10,
0, (sockaddr*)&addr2, &n) !=
0) {
cout << inet_ntoa(addr2.sin_addr) <<
" have linked!\n";
cout <<
"The message is " << buff << endl;
::sendto(s, sztext,
sizeof(sztext),
0, (sockaddr*)&addr2, n);
break;
}
}
::closesocket(s);
::WSACleanup();
system(
"pause");
return 0;
}