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

资源简介

用VC6.0编写的基于TCP协议的简单控制台文件传输程序,适合Windows Socket编程的初学者参考。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 

using namespace std;

void main()
{
int err; 
int len=sizeof(SOCKADDR);
char sendWord[200]=“服务端已收到消息!“;
char recvWord[200];
string s;
ifstream inf;

    //////////////创建套接字库///////////////
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD( 2 2 );
 
err = WSAStartup( wVersionRequested &wsaData );
if ( err != 0 ) {
return;
}
 
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
WSACleanup( );
return; 
}
   
///////////////创建套接字//////////////////////
SOCKET SockSrv=socket(AF_INETSOCK_STREAM0);     //SOCK_STREAM为使用TCP协议,SOCK_DGRAM为使用UDP协议

SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;        
addrSrv.sin_port=htons(6530);     //指定端口

/////////////绑定套接字//////////////////////
bind(SockSrv(SOCKADDR*)&addrSrvlen);

/////////////开始监听//////////////////////
if(0==listen(SockSrv2))
cout<<“正在监听...“< else {
cout<<“监听失败!“< return;
}

SOCKADDR_IN addrCli;

//////////////发送文件//////////////////
while(1)
{
inf.open(“1.txt“ios_base::in);
SOCKET SockCli=accept(SockSrv(SOCKADDR*)&addrCli&len);

cout<<“客户端已连接“;
Sleep(3000);

while(recv(SockClirecvWordstrlen(recvWord)+10)!=SOCKET_ERROR)
{
inf.getline(sendWord200);            //txt文件中必须每行都包括了回车

if(!inf.eof())             //判断文件是否到达文件末尾
{
system(“CLS“);             //清屏
cout<<“正在发送...“< send(SockClisendWordstrlen(sendWord)+10);
}
else
{
cout<<“文件成功发送!“< send(SockCli“END“strlen(“END“)+10);     //给客户端发送消息示意发送完成
break;
}
}
inf.clear();       //////////////调用clear()以便服务端可继续为接下来连接的客户端发送文件
inf.close();       ///////////////关闭文件
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-10-14 19:50  MyTcp\
     目录           0  2011-10-14 19:50  MyTcpCli\
     目录           0  2011-10-14 19:50  MyTcpCli\TcpCli\
     文件        1250  2011-10-14 19:30  MyTcpCli\TcpCli\1.txt
     目录           0  2011-10-14 19:50  MyTcpCli\TcpCli\Debug\
     文件      540736  2011-10-14 19:45  MyTcpCli\TcpCli\Debug\TcpCli.exe
     文件      800268  2011-10-14 19:45  MyTcpCli\TcpCli\Debug\TcpCli.ilk
     文件      175466  2011-10-14 19:45  MyTcpCli\TcpCli\Debug\TcpCli.obj
     文件     5505276  2011-10-14 17:27  MyTcpCli\TcpCli\Debug\TcpCli.pch
     文件     1131520  2011-10-14 19:45  MyTcpCli\TcpCli\Debug\TcpCli.pdb
     文件      189440  2011-10-14 19:48  MyTcpCli\TcpCli\Debug\vc60.idb
     文件      143360  2011-10-14 19:45  MyTcpCli\TcpCli\Debug\vc60.pdb
     文件        1799  2011-10-14 19:44  MyTcpCli\TcpCli\TcpCli.cpp
     文件        4317  2011-10-14 19:50  MyTcpCli\TcpCli\TcpCli.dsp
     文件         246  2011-10-14 19:48  MyTcpCli\TcpCli\TcpCli.plg
     文件        1250  2011-10-14 19:18  MyTcp\1.txt
     目录           0  2011-10-14 19:50  MyTcp\Debug\
     文件       38111  2011-10-06 11:37  MyTcp\Debug\1.txt
     文件        9573  2011-10-06 11:37  MyTcp\Debug\2.txt
     文件       49683  2011-10-06 11:38  MyTcp\Debug\3.txt
     文件      557109  2011-10-14 19:45  MyTcp\Debug\MyTcp.exe
     文件      821588  2011-10-14 19:45  MyTcp\Debug\MyTcp.ilk
     文件     5505276  2011-10-14 18:31  MyTcp\Debug\MyTcp.pch
     文件     1139712  2011-10-14 19:45  MyTcp\Debug\MyTcp.pdb
     文件      209383  2011-10-14 19:45  MyTcp\Debug\tcpip.obj
     文件      205824  2011-10-14 19:45  MyTcp\Debug\vc60.idb
     文件      143360  2011-10-14 19:45  MyTcp\Debug\vc60.pdb
     文件        4305  2011-10-14 19:50  MyTcp\MyTcp.dsp
     文件         724  2011-10-06 11:40  MyTcp\MyTcp.dsw
     文件       50176  2011-10-14 19:50  MyTcp\MyTcp.ncb
     文件       53760  2011-10-14 19:50  MyTcp\MyTcp.opt
............此处省略2个文件信息

评论

共有 条评论