#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#pragma comment (lib, "ws2_32.lib") //加载 ws2_32.dll
#define BUF_SIZE 1024
int main(){
//先检查文件是否存在
char *filename = "C:\\食物钠含量.pdf"; //文件名
FILE *fp = fopen(filename, "rb"); //以二进制方式打开文件
if(fp == NULL){
printf("Cannot open file, press any key to exit!\n");
system("pause");
exit(0);
}
WSADATA wsaData;
WSAStartup( MAKEWORD(2, 2), &wsaData);
SOCKET servSock = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in sockAddr;
memset(&sockAddr, 0, sizeof(sockAddr));
sockAddr.sin_family = PF_INET;
sockAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
sockAddr.sin_port = htons(1234);
bind(servSock, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR));
listen(servSock, 20);
SOCKADDR clntAddr;
int nSize = sizeof(SOCKADDR);
SOCKET clntSock = accept(servSock, (SOCKADDR*)&clntAddr, &nSize);
//循环发送数据,直到文件结尾
char buffer[BUF_SIZE] = {0}; //缓冲区
int nCount;
while( (nCount = fread(buffer, 1, BUF_SIZE, fp)) > 0 ){
send(clntSock, buffer, nCount, 0);
}
shutdown(clntSock, SD_SEND); //文件读取完毕,断开输出流,向客户端发送FIN包
recv(clntSock, buffer, BUF_SIZE, 0); //阻塞,等待客户端接收完毕
fclose(fp);
closesocket(clntSock);
closesocket(servSock);
WSACleanup();
system("pause");
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
socket传输文件(服务器和客户端).zip (54个子文件)
Client
Release
Client.pdb 267KB
Client.exe 7KB
Client
Client.vcxproj.user 143B
Release
CL.write.1.tlog 494B
CL.read.1.tlog 14KB
mt.read.1.tlog 828B
Client.log 3KB
Client.Build.CppClean.log 1KB
Client.write.1.tlog 0B
mt.command.1.tlog 548B
cl.command.1.tlog 774B
Client.exe.intermediate.manifest 381B
Client.lastbuildstate 86B
link.write.1.tlog 694B
link.command.1.tlog 1KB
link.read.1.tlog 3KB
mt.write.1.tlog 370B
CClient.obj 55KB
vc100.pdb 92KB
CClient.cpp 1KB
Client.vcxproj 4KB
Client.vcxproj.filters 945B
Client.suo 14KB
Client.sln 885B
Client.sdf 23.96MB
ipch
client-ed899686
client-e2fd8205.ipch 31.63MB
Sserver
Release
Sserver.pdb 267KB
Sserver.exe 7KB
Sserver.suo 13KB
Sserver.sdf 13.39MB
Sserver.sln 888B
Sserver
Sserver.vcxproj 4KB
Release
CL.write.1.tlog 502B
CL.read.1.tlog 14KB
mt.read.1.tlog 838B
Sserver.lastbuildstate 87B
Sserver.log 3KB
server.obj 55KB
mt.command.1.tlog 560B
cl.command.1.tlog 778B
Sserver.write.1.tlog 0B
link.write.1.tlog 710B
Sserver.vcxprojResolveAssemblyReference.cache 713B
link.command.1.tlog 1KB
link.read.1.tlog 3KB
Sserver.exe.intermediate.manifest 381B
mt.write.1.tlog 380B
Sserver.Build.CppClean.log 1KB
vc100.pdb 92KB
Sserver.vcxproj.user 143B
Sserver.vcxproj.filters 944B
server.cpp 1KB
ipch
sserver-22da02a7
sserver-9d620af6.ipch 31.69MB
sserver-2ba826f0.ipch 31.63MB
共 54 条
- 1
资源评论
vampirehll
- 粉丝: 9
- 资源: 35
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功