资源简介
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个文件信息
相关资源
- 基于CS的TCP文件传输程序设计
- windows网络编程_文件传输
- 基于socket文件传输的实现源码[C++]
- VC++实现两台电脑文件传输(源代码)
- 基于TCP协议的文件传输编程
- MFC Csocket实现点对点文件传输
- C++实现网络文件传输
- C++实现cs模式下文件传输
- c++ ftp文件传输
- C语言写的UDP文件传输
- C语言写的文件传输系统
- 基于VC++的UDP文件传输系统
- MFC编写文件传输
- 实现客户端与服务端的文件传输
- c语言实现ftp文件传输
- 使用TCP简单文件传输控制台程序VC++
- Socket文件传输
- c++ mfc客户端服务器端文件传输
- UDP简单文件传输
- 基于tcp mfc 文件传输 源代码 基于TCP的
- mfc socket编程实现聊天与文件传输vs2
- MFC socket编程 简易聊天工具及文件
- MFC聊天室与文件传输
- MFC 套接字Socket文件传输
- MFC实现TCP数据传输
- C/S架构文件传输,socket实现C++完整代
- 基于UDP的文件传输工程C++
- Linuxsocket文件传输C语言支持断点
- Linux环境下C语言Socket编程——客户端
- MFC实现局域网内点对点的大文件传输
评论
共有 条评论