使用C++语言编写基于TCP协议的C/S传输文件。具体使用方法见里面的report。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-10 16:20 assign4-516111910213
目录 0 2018-11-05 23:28 assign4-516111910213client2
目录 0 2018-11-01 22:13 assign4-516111910213client2in
目录 0 2018-11-01 22:13 assign4-516111910213client2inDebug
文件 35471 2018-11-01 21:51 assign4-516111910213client2inDebugclient2.exe
文件 1145 2018-11-01 22:13 assign4-516111910213client2client2.cbp
文件 317 2018-11-05 21:13 assign4-516111910213client2client2.depend
文件 241 2018-11-05 23:28 assign4-516111910213client2client2.layout
文件 4717 2018-11-01 21:51 assign4-516111910213client2main.cpp
目录 0 2018-11-01 22:13 assign4-516111910213client2obj
目录 0 2018-11-01 22:13 assign4-516111910213client2objDebug
文件 7131 2018-11-01 21:51 assign4-516111910213client2objDebugmain.o
文件 439926 2018-11-10 16:20 assign4-516111910213
eport.pdf
目录 0 2018-11-01 22:16 assign4-516111910213server2
文件 9728 2018-11-01 19:59 assign4-516111910213server2123.doc
文件 85072 2016-08-08 14:12 assign4-516111910213server2CYVW3880.jpg
文件 126208 2018-10-19 21:14 assign4-516111910213server2assign4.pdf
目录 0 2018-11-01 22:13 assign4-516111910213server2in
目录 0 2018-11-01 22:13 assign4-516111910213server2inDebug
文件 34488 2018-11-01 21:45 assign4-516111910213server2inDebugserver2.exe
文件 3680 2018-11-01 21:45 assign4-516111910213server2main.cpp
文件 1308294 2018-06-24 15:38 assign4-516111910213server2
ba.gif
目录 0 2018-11-01 22:13 assign4-516111910213server2obj
目录 0 2018-11-01 22:13 assign4-516111910213server2objDebug
文件 6397 2018-11-01 21:45 assign4-516111910213server2objDebugmain.o
文件 1145 2018-11-01 22:13 assign4-516111910213server2server2.cbp
文件 139 2018-11-01 21:46 assign4-516111910213server2server2.depend
文件 239 2018-11-01 22:16 assign4-516111910213server2server2.layout
文件 28 2018-10-30 16:12 assign4-516111910213server2 est.txt
文件 5 2018-10-30 19:10 assign4-516111910213server2 est2.txt
文件 5 2018-11-01 13:51 assign4-516111910213server2 est3.txt
............此处省略0个文件信息
#include
#include
#include
#include
#include
#define PORT 2680
#define BUFFER_SIZE 1024
#define MAXLINE 512
#pragma comment(lib “WS2_32“)
int main()
{
int recvTimeout = 1000;
char c = 0;
int nNetTimeout = 1000;
WSADATA wsdata;
WORD v = MAKEWORD(20);
char IP[32];
SOCKET ConnectSocket = INVALID_SOCKET;
int len = 0;
char filename[MAXLINE+1];
// Initialize Winsock
if( WSAStartup(v &wsdata) != 0)
{
printf(“WSAStartup failed with error: %d
“ WSAStartup(v &wsdata));
return 1;
}
sockaddr_in server_addr client_addr;
int size = sizeof(client_addr);
server_addr.sin_family = AF_INET;
printf(“Please input the IP address:“);
scanf(“%s“ &IP);
server_addr.sin_addr.S_un.S_addr = inet_addr(IP);
server_addr.sin_port = htons(PORT);//htons transfer to u_short
// Create a SOCKET for connecting to server
ConnectSocket = socket(AF_INET SOCK_STREAM 0);
if (ConnectSocket == INVALID_SOCKET)
{
printf(“socket failed with error: %ld
“ WSAGetLastError());
WSACleanup();
return 1;
}
//connect
if (SOCKET_ERROR == connect(ConnectSocket (sockaddr *)&server_addr sizeof(server_addr)))
{
printf(“Unable to connect to server!
“);
WSACleanup();
return 1;
}
char str[20] = ““;
recv(ConnectSocket str sizeof(str) 0);
printf(“server:%s“ str);
char buffer[BUFFER_SIZE];
while(c != 27)
{
memset(filename 0 MAXLINE+1);
printf(“
please input the file name in the server:“);
scanf(“%s“&filename);
memset(buffer 0 BUFFER_SIZE);
strncpy(buffer filenamestrlen(filename)>BUFFER_SIZE ? BUFFER_SIZE:strlen(filename));
// Send an initial buffer
if(send(ConnectSocket buffer BUFFER_SIZE 0) == SOCKET_ERROR)
{
printf(“send failed with error: %d
“ WSAGetLastError());
closesocket(ConnectSocket);
WSACleanup();
return 1;
}
//open the file to write
FILE *fp = fopen(filename “wb“);
memset(buffer 0 BUFFER_SIZE);
setsockopt(ConnectSocket SOL_SOCKET SO_RCVTIMEO (char *)&recvTimeout sizeof(int));
len = recv(ConnectSocket buffer BUFFER_SIZE 0);
// int length = fwrite(buffer sizeof(char) len fp);
// fflush(fp);
if (len == -1)
{
printf(“can not find the file
“);
}
else if(fp == NULL)
{
printf(“can not open to write the file %s
“filename);
return 0;
}
else
{
int length = 0;
length = recv(ConnectSocket buffer BUFFER_SIZE 0);
if (fwrite(buffer sizeof(char) length fp) < length)
{
// fflush(fp
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-10 16:20 assign4-516111910213
目录 0 2018-11-05 23:28 assign4-516111910213client2
目录 0 2018-11-01 22:13 assign4-516111910213client2in
目录 0 2018-11-01 22:13 assign4-516111910213client2inDebug
文件 35471 2018-11-01 21:51 assign4-516111910213client2inDebugclient2.exe
文件 1145 2018-11-01 22:13 assign4-516111910213client2client2.cbp
文件 317 2018-11-05 21:13 assign4-516111910213client2client2.depend
文件 241 2018-11-05 23:28 assign4-516111910213client2client2.layout
文件 4717 2018-11-01 21:51 assign4-516111910213client2main.cpp
目录 0 2018-11-01 22:13 assign4-516111910213client2obj
目录 0 2018-11-01 22:13 assign4-516111910213client2objDebug
文件 7131 2018-11-01 21:51 assign4-516111910213client2objDebugmain.o
文件 439926 2018-11-10 16:20 assign4-516111910213
eport.pdf
目录 0 2018-11-01 22:16 assign4-516111910213server2
文件 9728 2018-11-01 19:59 assign4-516111910213server2123.doc
文件 85072 2016-08-08 14:12 assign4-516111910213server2CYVW3880.jpg
文件 126208 2018-10-19 21:14 assign4-516111910213server2assign4.pdf
目录 0 2018-11-01 22:13 assign4-516111910213server2in
目录 0 2018-11-01 22:13 assign4-516111910213server2inDebug
文件 34488 2018-11-01 21:45 assign4-516111910213server2inDebugserver2.exe
文件 3680 2018-11-01 21:45 assign4-516111910213server2main.cpp
文件 1308294 2018-06-24 15:38 assign4-516111910213server2
ba.gif
目录 0 2018-11-01 22:13 assign4-516111910213server2obj
目录 0 2018-11-01 22:13 assign4-516111910213server2objDebug
文件 6397 2018-11-01 21:45 assign4-516111910213server2objDebugmain.o
文件 1145 2018-11-01 22:13 assign4-516111910213server2server2.cbp
文件 139 2018-11-01 21:46 assign4-516111910213server2server2.depend
文件 239 2018-11-01 22:16 assign4-516111910213server2server2.layout
文件 28 2018-10-30 16:12 assign4-516111910213server2 est.txt
文件 5 2018-10-30 19:10 assign4-516111910213server2 est2.txt
文件 5 2018-11-01 13:51 assign4-516111910213server2 est3.txt
............此处省略0个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)