//--------------------------------------------------------------------//
// 作者:刘文涛 //
// 书籍:《网络安全编程技术与实例》 //
//--------------------------------------------------------------------//
#include <winsock2.h>
#include <stdio.h>
#include"des.h"
#pragma comment( lib, "ws2_32.lib" )
#define BUFFERSIZE 1024
void main()
{
CDesOperate cDes;
char strDecryBuffer[BUFFERSIZE];
int nLen=BUFFERSIZE;
char *pKey="123456";
WSADATA wsaData;
SOCKET ServerSocket;
SOCKADDR_IN ServerAddr;
SOCKADDR_IN ClientAddr;
int ServerPort =52543;
char ReceiveBuffer[1024];
int ClientAddrSize = sizeof(ClientAddr);
int Result;
if ((Result = WSAStartup(MAKEWORD(2, 2), &wsaData)) != 0)
{
printf("WSAStartup failed with error %d\n", Result);
return ;
}
ServerSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (ServerSocket < 0)
{
printf("socket failed with error %d\n", WSAGetLastError());
return ;
}
ServerAddr.sin_family = AF_INET;
ServerAddr.sin_port = htons(ServerPort);
ServerAddr.sin_addr.s_addr = htonl(INADDR_ANY);
Result = bind(ServerSocket, (SOCKADDR*) &ServerAddr, sizeof(ServerAddr));
if (Result < 0)
{
printf("bind failed with error %d\n", WSAGetLastError());
return ;
}
int len;
//printf("Received 解密Data:%s From :%s\n", strDecryBuffer,inet_ntoa(ClientAddr.sin_addr));
while (1)
{
memset(ReceiveBuffer, 0, sizeof(ReceiveBuffer));
memset(&ClientAddr, 0, sizeof(ClientAddr));
//cDes.Decry(ReceiveBuffer,BUFFERSIZE,strDecryBuffer,nLen,pKey,8);//
if (len = recvfrom(ServerSocket, ReceiveBuffer, 1024, 0, (SOCKADDR*) &ClientAddr, &ClientAddrSize) < 0)
{
printf("recvfrom failed with error %d\n", WSAGetLastError());
return ;
}
else
{
printf("Received Data:%s From :%s\n", ReceiveBuffer, inet_ntoa(ClientAddr.sin_addr));//收到的加密数据
cDes.Decry(ReceiveBuffer,BUFFERSIZE,strDecryBuffer,nLen,pKey,8);//用于解密收到的的加密数据
printf("Received 解密Data:%s From :%s\n", strDecryBuffer,inet_ntoa(ClientAddr.sin_addr));//经过解密得出的原始数据
len = sendto(ServerSocket, ReceiveBuffer, strlen(ReceiveBuffer), 0, (SOCKADDR*) &ClientAddr, sizeof(ClientAddr));
if (len < 0)
{
printf("sendto failed with error %d\n", WSAGetLastError());
return ;
}
else
{
printf("Send the data:%s\n", ReceiveBuffer);
}
}
}
if (closesocket(ServerSocket) == SOCKET_ERROR)
{
printf("closesocket failed with error %d\n", WSAGetLastError());
}
if (WSACleanup() == SOCKET_ERROR)
{
printf("WSACleanup failed with error %d\n", WSAGetLastError());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
15-udp加密练习.rar (36个子文件)
15-udp加密练习
udpclient
udpclient.ncb 9.39MB
udpclient.sln 892B
udpclient
udpclient.vcproj 4KB
des.h 13KB
Debug
client.obj 41KB
vc80.pdb 92KB
udpclient.exe.intermediate.manifest 385B
udpclient.exe.embed.manifest.res 468B
BuildLog.htm 8KB
mt.dep 65B
udpclient.exe.embed.manifest 403B
vc80.idb 299KB
udpclient.vcproj.DADI-20140419ZF.hongai.user 1KB
client.cpp 3KB
udpclient.suo 11KB
debug
udpclient.pdb 387KB
udpclient.ilk 342KB
udpclient.exe 48KB
udpservice
udpservice.suo 11KB
debug
udpservice.pdb 387KB
udpservice.exe 48KB
udpservice.ilk 336KB
udpservice.ncb 8.92MB
udpservice.sln 895B
udpservice
des.h 13KB
Debug
udpservice.exe.embed.manifest.res 468B
vc80.pdb 92KB
udpservice.exe.embed.manifest 403B
BuildLog.htm 5KB
mt.dep 65B
sevice.obj 39KB
udpservice.exe.intermediate.manifest 385B
vc80.idb 299KB
sevice.cpp 3KB
udpservice.vcproj.DADI-20140419ZF.hongai.user 1KB
udpservice.vcproj 4KB
共 36 条
- 1
资源评论
Inkred
- 粉丝: 8
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功