标准c语言局域网文件传输,winsocket局域网文件传输系统源代码(C语言)+winsocket

f67

#include

#include

#include

#include

#include

#include

#pragma comment(lib,"Ws2_32")

#define M 512000 //每块传送文件的大小500k

#define portNum 8888 //使用的端口号

void LongToChar(long x,char a[]);//将long型整数转换成字符串

long StrToLong(char str[]);//将字符串转换成long型整数

void getW_name(char waddr[],char wname[]); //获取文件名函数

void sendFile(SOCKET ss); //服务端发送文件函数

int receiveFile(SOCKET sc);//客户端接收文件函数

void chatting_client(SOCKET sc); //客户端聊天函数

void chatting_server(SOCKET s_d); //服务端聊天函数

int client(); //客户端主程序

void server(); //服务端主程序

void main()

{

system("cls");

system("@color 0a");

puts("\n");

puts(" *********************************************************");

puts(" * * ");

puts(" * 欢·迎·使·用·局·域·网·文·件·发·送·工·具 *");

puts(" * * ");

puts(" * * ");

puts(" * * ");

puts(" * 1. 客 户 端 * ");

puts(" * * ");

puts(" * 2. 服 务 端 * ");

puts(" * * ");

puts(" * 3. 结 束 * ");

puts(" * * ");

puts(" * * ");

puts(" * 天乐软件工作室制作 * ");

puts(" * 2008-3-1 * ");

puts(" * 版权所有★欢迎传播 * ");

puts(" *********************************************************\n");

puts("全屏(退出全屏)操作请按:ALT+ENTER\n");

printf("请输入你要选择的端代号(1-3):");

char ch;

char Num[10];

gets(Num);

ch=Num[0];

while(ch >='4' || ch <='0')//检测用户选择的代码是否符合要求

{

printf("\n你的输入有误!请重新输入:");

gets(Num);

ch=Num[0];

}

if('1'==ch)

{

client();

}

else if('2'==ch)

{

server();

}

else if('3'==ch)

{

exit(0);

}

}

int client()

{

system("color 0a");//修改DOS窗口颜色,是其成0A。

WORD wVersion=MAKEWORD(1,1);

WSADATA wsData;

int nResult= WSAStartup(wVersion,&wsData); //启动WINSOCKET

if(nResult !=0)

{

printf("启动Winsock失败!\n");

}

SOCKET sc=socket(AF_INET,SOCK_STREAM,IPPROTO_IP); //创建套接字

if(sc==INVALID_SOCKET)

{

printf("创建套接字失败!\n");

}

SOCKADDR_IN addrSc;

addrSc.sin_family=AF_INET;

addrSc.sin_port=htons(portNum); //保证字节顺序

char IP[20];

again:

printf("请输入服务器的IP地址:");

gets(IP)

;

if( -1==inet_addr(IP) ) //循环检测IP地址是否合法

{

printf("IP地址错误!\n");

goto again;

}

addrSc.sin_addr.S_un.S_addr=inet_addr(IP);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值