C语言-Windows网络编程-实验 基于UDP的Sockets编程:服务器和客户端 实现传输文件

和一个烂人合作的代码。其实上一个实验也有合作
代码我没仔细看了。代码风格也没纠正过来 不管他了
先贴上来

模块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[]
  • 0
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值