资源简介
该资源只是简单的实现TCP文件的传输,仅供初学者,没有生命太大的技术含量,下载者请注意
代码片段和文件信息
#include
#include
#include
#define MAX_DATA_BLOCK_SIZE 8192
void error_exit(const char * msgint val);
void send_file(const char * file_nameconst char * ipu_short port);
int main(int argcchar** argv){
u_short port;
if(argc==3){
send_file(argv[1]argv[2]8888);
}
else if(argc==4){
port=(u_short) atoi(argv[1]);
if(port==0){
error_exit(“非法服务器端口“-1);
}else{
send_file(argv[1]argv[2]port);
}
}
else{
error_exit(“参数错误“-1);
}
return 0;
}
void error_exit(const char* msg int val){
if(msg){
printf(“%s\n\n“msg);
}
printf(“使用方式: ft_client<文件名><服务器IP地址>[服务器端口]\n“);
printf(“服务器端口是可选参数,默认为8888\n\n“);
exit(val);
}
void send_file(const char* file_nameconst char* ip u_short port){
WSADATA wsaData;
SOCKET s;
FILE *fp;
struct sockaddr_in server_addr;
char data[MAX_DATA_BLOCK_SIZE];
int i;
int ret;
fp=fopen(file_name“rb“);
if(fp==NULL){
printf(“无法打开文件\n“);
return;
}
WSAStartup(0x202&wsaData);
s=socket(AF_INETSOCK_STREAM0);
memset((void *)&server_addr0sizeof(server_addr));
server_addr.sin_family=AF_INET;
server_addr.sin_addr.s_addr=inet_addr(ip);
server_addr.sin_port=htons(port);
if(connect(s(struct sockaddr *)&server_addrsizeof(struct sockaddr_in))==SOCKET_ERROR){
printf(“连接服务器失败\n“);
fclose(fp);
closesocket(s);
WSACleanup();
return;
}
printf(“发送文件名。。。\n“);
send(sfile_namestrlen(file_name)0);
send(s“\0“10);
printf(“发送文件内容“);
for(;;){
memset((void *)data0sizeof(data));
i=fread(data1sizeof(data)fp);
if(i==0){
printf(“\n发送成功\n“);
break;
}
ret=send(sdatai0);
putchar(‘.‘);
if(ret==SOCKET_ERROR){
printf(“\n发送失败,文件可能不完整\n“);
break;
}
}
fclose(fp);
closesocket(s);
WSACleanup();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 0 2018-11-23 14:23 server\a.txt
文件 0 2018-11-23 11:26 server\bin\Debug\a.txt
文件 409117 2018-11-23 14:17 server\bin\Debug\server.exe
文件 3749 2018-11-23 13:56 server\main.c
文件 3972 2018-11-23 13:12 server\new.c
文件 389878 2018-11-23 13:57 server\obj\Debug\main.o
文件 1236 2018-11-23 14:48 server\server.cbp
文件 139 2018-11-23 14:15 server\server.depend
文件 539 2018-11-23 14:48 server\server.layout
文件 111 2018-11-23 11:54 test\2.c
文件 0 2018-11-23 13:21 test\bin\Debug\a.txt
文件 409700 2018-11-23 14:10 test\bin\Debug\test.exe
文件 3990 2018-11-23 14:17 test\main.c
文件 390226 2018-11-23 14:10 test\obj\Debug\main.o
文件 1336 2018-11-23 14:48 test\test.cbp
文件 226 2018-11-23 14:04 test\test.depend
文件 355 2018-11-25 12:55 test\test.layout
文件 16 2018-11-25 13:17 client\bin\Debug\a.txt
文件 406412 2018-11-23 13:15 client\bin\Debug\client.exe
文件 1123 2018-11-21 17:01 client\client.cbp
文件 125 2018-11-23 13:20 client\client.depend
文件 355 2018-11-25 12:55 client\client.layout
文件 2248 2018-11-23 13:15 client\main.c
文件 388230 2018-11-23 13:15 client\obj\Debug\main.o
目录 0 2018-11-23 14:17 server\bin\Debug
目录 0 2018-11-23 13:57 server\obj\Debug
目录 0 2018-11-23 14:10 test\bin\Debug
目录 0 2018-11-23 14:10 test\obj\Debug
目录 0 2018-11-23 13:15 client\bin\Debug
目录 0 2018-11-23 13:15 client\obj\Debug
............此处省略12个文件信息
相关资源
- ModbusTCP_Slave程序
- 基于TCP文件传输控制台程序.zip
- TcpFileTransferDemo.rar
- tcp工具-hunt 1.5
- STM32F107实现DP83848-UDP-TCP通信程序
- 基于TCP的cs聊天程序.rar
- 基于delphi TCPclient与TCPserver的聊天程序
- tcptrace TCP端口监听工具 TCP跟踪
- UDP可靠传输(VTCP11.0)
- TCP/UDP Socket调试工具
- 陕西电子科技大学精品课程TCPIP协议原
- USR-TCP232-Test.zip
- TCP/IP调试助手
- 基于TCP传输文件及文件夹的LabVIEW程序
- ModbusTCP测试程序源码
- 武汉理工大学TCPIP及网络编程复习重点
- rtp/rtcp协议实现源码
- STM32F103VCT6+W5500 TCP 服务端通信成功开
- 基于STM32F103的W5500 TCP Client测试程序
- 自制Modbus解析DEMO_Delphi7
- 基于组播的局域网聊天程序
- 使用Qt实现TCP中客户端和服务器的交互
- TCPFileAns.zip
- 基于UDP的数据传输与基于TCP的简易聊
- 基于TCP协议编程的网络聊天室
- Qt利用TCP实现客户端与服务器端的数据
- qt写的简单的tcp服务器程序代码windo
- linux下基于TCP的多用户聊天室含文档
- USR-TCP232-Test调试工具
- Linux下socket实现TCP网络通讯多个客户端
评论
共有 条评论