91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

基于winsock文件傳輸的C++文件傳輸實現,TCP/IP協議,服務端和客戶端都有,簡單易學

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include
#include
#include
using?namespace?std;
#pragma?comment(lib“ws2_32.lib“)
#define?DEFAULT_PORT?“2222“
#define?DEFAULT_ADDRESS?“127.0.0.1“


void?showHelp();
int?clientDirFun(SOCKET);
int?clientGetFun(SOCKET?s?char*?char*);
int?clientPutFun(SOCKET?s?char*?char*);
void?HandleError(SOCKET?s?int?ret);
int?sstream2char(stringstream&?char*);
int?connectServer(SOCKET?sockaddr_in);

int?main(int?argc?char**?argv)
{
puts(“----------------------------------------------“);
printf(“usage:?client?[server?ip]?[server?port]?[work?path]\n“);
printf(“‘?‘?to?get?command?info\n“);
struct?sockaddr_in?clientAddr;
struct?sockaddr_in?serverAddr;
WSADATA?wsdata;
SOCKET?serversocket;
char?input1[10]?=?{0};
char?input2[40]?=?{0};
char?sendbuf[80]?=?{0};
char?recvbuf[80]?=?{0};
char?path[256]?=?{0};
string?line;
FILE?*testFile?=?NULL;

if(WSAStartup(MAKEWORD(22)?&wsdata)?!=?0)
{
WSACleanup();
cerr<<“WSAStartup()?failed!/n“;
}
serversocket?=?socket(AF_INET?SOCK_STREAM?IPPROTO_TCP);
if(serversocket<0)
cerr<<“socket()?failed!/n“;

serverAddr.sin_family?=?AF_INET;
if(argc? {
serverAddr.sin_port?=?htons(atoi(DEFAULT_PORT));
serverAddr.sin_addr.s_addr?=?inet_addr(DEFAULT_ADDRESS);
}
else
{
serverAddr.sin_port?=?htons(atoi(argv[2]));
serverAddr.sin_addr.s_addr?=?inet_addr(argv[1]);
}
if(argc?==?4)
{
strcat(path?argv[3]);
strcat(path?“\\“);
}

if(connectServer(serversocket?serverAddr)?!=?0)
{
cin.get();
return?1;
}

while(true)
{
cout<<“ftp>?“;
cin.sync();
getline(cin?line);
if(line?==?““)
continue;
stringstream?linebuf;
linebuf< sstream2char(linebuf?input1);
if(!strcmp(input1?“?“))
{
showHelp();
continue;
}
else?if(!strcmp(input1?“quit“))
break;
else?if(!strcmp(input1?“dir“))
{
clientDirFun(serversocket);
continue;
}
else?if(!strcmp(input1?“re“))
{
if(connectServer(serversocket?serverAddr)?!=?0)
cin.get();
continue;
}

else?if(sstream2char(linebuf?input2)?!=?-1)
{
if(input2[0]?!=?‘\0‘)
{
char?filePath[256]?=?{0};
if(path!=““)
strcat(filePath?path);
strcat(filePath?input2);
if(!strcmp(input1?“get“))
{
if((testFile?=?fopen(filePath?“r“))?!=?NULL)
{
fclose(testFile);
char?ans?=?0;
while(ans?!=?‘Y‘?&&?ans?!=?‘y‘?&&?ans?!=?‘N‘?&&?ans?!=?‘n‘)
{
printf(“File?%s?already?exists.?Overwrite??Y/N??“?
input2);
cin>>ans;
}
if(ans?==?‘Y‘?||?ans?==?‘y‘)
HandleError(serversocket
clientGetFun(serversocket?path?input2));
cout< continue;
}
else
{
HandleError(serversocket
clientGetFun(serversocket?path?input2));
continue;
}
}
else?if(!strc

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4877??2015-01-04?21:20??server.cpp

?????文件???????7206??2015-01-07?23:43??client.cpp

-----------?---------??----------?-----??----

????????????????12083????????????????????2


評論

共有 條評論