1、UDP通信服务器和客户端 VC++
服务器端:
// udpserver.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "winsock2.h"
#define BUF_ZIZE 64
#include
using namespace std;
#pragma comment(lib,"ws2_32.lib")
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA wsd;
SOCKET sServer;
SOCK
2、ET sClient;
SOCKADDR_IN addrServ;
SOCKADDR_IN addrClient;
char buf[BUF_ZIZE];
int retVal;
//初始化套接字动态库
if(WSAStartup(MAKEWORD(2,2),&wsd) != 0)
{
cout<<"WSAStartup error"<3、RAM,IPPROTO_UDP);
if(INVALID_SOCKET == sServer)
{
cout<<"socket error"<4、5、T_ERROR)
{
cout<<"bind erroe"<6、 addrClient.sin_addr.s_addr = inet_addr("127.0.0.1");
addrClient.sin_port = htons((short)4999);
//发送给客户端
ZeroMemory(buf,BUF_ZIZE);
strcpy(buf,"知道了");
sendto(sClient,buf,BUF_ZIZE,0,(SOCKADDR*)&addrClient,sizeof(SOCKADDR));
system("pause");
closesocket(sServer);
7、
WSACleanup();
return 0;
}
客户端:
// udpclient.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#define BUF_SIZE 64
#include "winsock2.h"
#pragma comment(lib,"ws2_32.lib")
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA wsd;
SOCKE
8、T sHost;
SOCKET sClient;
SOCKADDR_IN servAddr;
char buf[BUF_SIZE];
char cuf[BUF_SIZE];
int retVal;
//初始化套接字动态库
if(WSAStartup(MAKEWORD(2,2), &wsd) != 0)
{
cout<<"WSAStartup failed"<9、AF_INET,SOCK_DGRAM,IPPROTO_UDP);
if(INVALID_SOCKET == sHost)
{
cout<<"socket failed"<10、ocket failed"<11、roMemory(buf,BUF_SIZE);
strcpy(buf,"快了");
sendto(sHost,buf,BUF_SIZE,0,(SOCKADDR*)&servAddr,sizeof(SOCKADDR));
int len = sizeof(SOCKADDR);
//开始等待服务端发来消息
ZeroMemory(cuf,BUF_SIZE);
recvfrom(sClient,cuf,BUF_SIZE,0,(SOCKADDR*)&servAddr,&len);
cout<