和一个烂人合作的代码。其实上一个实验也有合作
代码我没仔细看了。代码风格也没纠正过来 不管他了
先贴上来
模块1可以将服务器端的一个文件使用UDP传输到客户端
客户端需要输入正确密码才能接收
模块2是服务器输入文本信息 传输过去 要定义文件名
同样要输密码
服务器端
#include <winsock2.h>
#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <math.h>
#pragma comment (lib,"Ws2_32.lib")
void Stop_Connect(SOCKET &s) //关闭连接
{
closesocket(s); //关闭套接字
WSACleanup(); //释放套接字库
}
void File_InFo(char FileRoute[],char FileName[],int &RouteLen,int &NameLen)
{
int i=0,j=0;
printf("\n输入文件的路径(驱动盘:\\文件夹\\文件名):");
scanf("%s",FileRoute);
printf("%s\n",FileRoute);
RouteLen=strlen(FileRoute);
for(i=RouteLen-1;i>=0;i--)
{
if(FileRoute[i]=='\\')
break;
else
NameLen++;
}
for(i=RouteLen-NameLen;i<RouteLen;i++)
{
FileName[j]=FileRoute[i];
j++;
}
}
int main()
{
char FileName[50]={
0}; //文件名字
char FileRoute[100]={
0};
int NameLen=0; //文件名字长度
int RouteLen=0; //文件路径长度
char flag; //判断是否继续下一步操作
int i=0;
int j=0;
int n=1;
int x;
int y;
char c[20]={
0};
int TransMode=0; //选择发送已经存在的文件输入(1);选择发送即时数据输入(2)
int FileSize=0; //文件大小;
int SendTimes=0;
int Size=0;
system("title UDP服务器");
//system("mode con cols=49 lines=30");
char sendbuf[65000] = {
0}; // 发送数据缓冲区
char recvbuf[1500] = {
0}; // 接收数据缓冲区
char password[7]; // 存放最长6位密码
WSADATA wsaData; // 创建类型为WSADATA的对象
int iResult = WSAStartup(MAKEWORD(2,2),&wsaData); // 初始化winsock并根据返回值判断错误信息
if(iResult!=0)
{
printf("初始化失败。错误代码:%d\n",iResult);
return 1;
}
SOCKET s; // 定义套接字句柄
s = socket(AF_INET, SOCK_DGRAM,0); // 创建UDP套接字
sockaddr_in addr,addr2; // 套接字地址结构变量
addr.sin_family=AF_INET;
addr.sin_port=htons(75);
addr.sin_addr.S_un.S_addr=INADDR_ANY;
int addr2Len = sizeof(addr2); // 套接字地址结构大小
bind( s,(sockaddr*)&addr,sizeof(addr) ); // 绑定套接字
if(iResult==0) // 输出提示信息
{
printf("UDP服务器初始化完成\n");
}
char str[]