• 大小: 4.39MB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2023-09-16
  • 语言: C/C++
  • 标签: 文件传输  

资源简介

C语言局域网文件传输和聊天

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
#pragma comment(lib“Ws2_32“)
#define M 512000  //每块传送文件的大小500k
#define portNum 5102  //使用的端口号1024~60000

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

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

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

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

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

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(“       *   2017-6-20    * “);
puts(“       *       长江大学计算机网络      * “);
puts(“       *********************************************************\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)
{
//输入1选择客户端
client();
}
else if(‘2‘==ch)
{
//输入2选择服务端
server();
}
else if(‘3‘==ch)
{
exit(0);
}
}




int client()
{
system(“color 0a“); //修改DOS窗口颜色,是其成0A。
//初始化套接字
WORD wVersion=MAKEWORD(11); //Winsock版本,调用1.1版,支持TCP/IP协议
WSADATA wsData; //返回Windows Sockets数据
int nResult= WSAStartup(wVersion&wsData);  //启动WINSOCKET
if(nResult !=0) 

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


SOCKET sc=socket(AF_INETSOCK_STREAMIPPROTO_IP);  //创建套接字
/*
第一个参数指使用的协议族,协议族决定了socket的地址类型,在通信中必须采用对应的地址,
AF_INET决定了要用ipv4地址(32位的)与端口号(16位的)的组合
第二个参数指明socket类型,SOCK_STREAM -- TCP类型,保证数据顺序及可靠性
第三个参数传输协议
*/
if(sc==INVALID_SOCKET) 

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


SOCKADDR_IN addrSc; //sockaddr 是一个通用地址结构,这是为了统一地址结构的表示方法,统一接口函数,
//使不同的地址结构可以被bind()  connect() 等函数调用;struct sockaddr_in中的in 表示internet,就是网络地址
addrSc.sin_family=AF_INET;   //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); //若合法,则填充服务端IP地址


int b=0;
while(b<5)               //检测5次,如果服务器在此时间内启动,则进行连接
{
nResult=connect(sc(SOCKADDR*)&addrScsizeof(SOCKADDR)); //套接字连接 connect()
Sleep((DWORD)100); //延时1秒
/* if(nResult==SOCKET_ER

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-07-03 20:16  C语言版局域网文件传输\
     目录           0  2017-07-03 20:13  C语言版局域网文件传输\源程序\
     文件       14906  2017-07-03 00:04  C语言版局域网文件传输\源程序\keshe.cpp
     文件      217129  2017-06-30 14:28  C语言版局域网文件传输\源程序\keshe.exe
     目录           0  2017-07-03 20:13  C语言版局域网文件传输\源程序\KeSheAll\
     文件        3808  2017-06-28 16:09  C语言版局域网文件传输\源程序\KeSheAll\Chat.cpp
     文件        4357  2017-06-28 16:23  C语言版局域网文件传输\源程序\KeSheAll\Client.cpp
     目录           0  2017-07-03 20:13  C语言版局域网文件传输\源程序\KeSheAll\Debug\
     文件          34  2017-06-28 16:27  C语言版局域网文件传输\源程序\KeSheAll\Debug\111.txt
     文件           0  2017-07-02 19:12  C语言版局域网文件传输\源程序\KeSheAll\Debug\Chat.sbr
     文件           0  2017-07-02 19:12  C语言版局域网文件传输\源程序\KeSheAll\Debug\Client.sbr
     文件           0  2017-07-02 19:12  C语言版局域网文件传输\源程序\KeSheAll\Debug\fun_statement.sbr
     文件     2368512  2017-07-02 19:12  C语言版局域网文件传输\源程序\KeSheAll\Debug\main.bsc
     文件      233544  2017-07-03 19:59  C语言版局域网文件传输\源程序\KeSheAll\Debug\main.exe
     文件      310344  2017-07-03 19:59  C语言版局域网文件传输\源程序\KeSheAll\Debug\main.ilk
     文件       53595  2017-07-03 19:59  C语言版局域网文件传输\源程序\KeSheAll\Debug\main.obj
     文件     3673828  2017-07-03 19:59  C语言版局域网文件传输\源程序\KeSheAll\Debug\main.pch
     文件      599040  2017-07-03 19:59  C语言版局域网文件传输\源程序\KeSheAll\Debug\main.pdb
     文件           0  2017-07-02 19:12  C语言版局域网文件传输\源程序\KeSheAll\Debug\main.sbr
     文件           0  2017-07-02 19:12  C语言版局域网文件传输\源程序\KeSheAll\Debug\SendFile.sbr
     文件           0  2017-07-02 19:12  C语言版局域网文件传输\源程序\KeSheAll\Debug\Server.sbr
     文件           0  2017-07-02 19:12  C语言版局域网文件传输\源程序\KeSheAll\Debug\Tool.sbr
     文件      156672  2017-07-03 19:59  C语言版局域网文件传输\源程序\KeSheAll\Debug\vc60.idb
     文件       77824  2017-07-03 19:59  C语言版局域网文件传输\源程序\KeSheAll\Debug\vc60.pdb
     文件         508  2017-06-26 16:13  C语言版局域网文件传输\源程序\KeSheAll\fun_statement.cpp
     文件        4243  2017-06-26 15:59  C语言版局域网文件传输\源程序\KeSheAll\KeSheAll.dsp
     文件         524  2017-06-26 15:59  C语言版局域网文件传输\源程序\KeSheAll\KeSheAll.dsw
     文件       50176  2017-07-03 20:00  C语言版局域网文件传输\源程序\KeSheAll\KeSheAll.ncb
     文件       50688  2017-07-03 20:00  C语言版局域网文件传输\源程序\KeSheAll\KeSheAll.opt
     文件        2483  2017-06-27 15:31  C语言版局域网文件传输\源程序\KeSheAll\main.cpp
     文件        3377  2017-07-03 19:58  C语言版局域网文件传输\源程序\KeSheAll\main.dsp
............此处省略12个文件信息

评论

共有 条评论