资源简介

设计一个服务器程序和一个客户端程序。 客户端可以将本地文件上传至服务器,服务器接收到文件后, 将文件存储到固定的目录,例如D:\Temp目录, 文件名称为“客户端IP地址-时间-两位随机数”, 例如“19216831213-20110530-12”文件的后缀名和上传文件后缀名一致。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#define BACKLOG 10
#define filename 30
#define onekb 1024
using namespace std;
//#pragma comment 
void main()
{
int sockfd client_fd;
struct sockaddr_in my_addr;
struct sockaddr_in client_addr;
WSADATA wsaData;
WORD wVersionRequested = MAKEWORD(11);
if (WSAStartup(wVersionRequested &wsaData))
{
cout<<“连接socket库失败,检查版本号是否为1.1“< exit(1);
}
sockfd = socket(AF_INET SOCK_STREAM 0);
if (sockfd == INVALID_SOCKET)
{
cout<<“创建socket失败“< exit(1);
}
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(80);
//my_addr.sin_addr.s_addr = htonl(INADDR_ANY);
my_addr.sin_addr.s_addr = inet_addr(“192.168.1.115“);
memset(my_addr.sin_zero 0 8);
if (bind(sockfd (struct sockaddr *)&my_addr sizeof(struct sockaddr) )== -1)
{
cout<<“绑定失败“< //cout< exit(1);
}
if (listen(sockfd BACKLOG) == -1)
{
cout<<“监听失败“< exit(1);
}
int size;
size = sizeof(struct sockaddr_in);
client_fd = accept(sockfd (struct sockaddr *)&client_addr &size);
while (client_fd == SOCKET_ERROR)
{
cout<<“连接失败“< client_fd = accept(sockfd (struct sockaddr *)&client_addr &size);
continue;
}
if(send(client_fd “已连接上:“ sizeof(“已连接上“) 0) == -1)
{
cout<<“send出错“< exit(1);
}
char buffer[filename];
char sendmesg[onekb];
int abc;
while (1)
{
a = recv(client_fd buffer sizeof(buffer) 0);
if (a == SOCKET_ERROR)
{
cout<<“接收失败!“< exit(1);
}

评论

共有 条评论