资源简介
华南理工大学计算机网络小班教学实验报告2-4,实验时间是2019
实验二 网络报文抓取与分析
实验三 路由器的基本操作
实验四 组网实验
代码片段和文件信息
/*
Socket客户端代码
服务器127.0.0.1通信,端口8888
建立连接后,发送给服务器,需要传输的文件路径
若文件路径存在,接收服务器发送的文件流,发送完毕则关闭连接。
*/
#include
#include
#include
#include
#include
#include
#pragma comment(lib“ws2_32.lib“)
#define BUFFER_SIZE 2048
#define FILE_NAME_MAX_SIZE 512
int main(int argc char* argv[])
{
/*
初始化WSA,使得程序可以调用windows socket
*/
WORD sockVersion = MAKEWORD(2 2);
WSADATA wsaData;
if (WSAStartup(sockVersion &wsaData) != 0)
{
return 0;
}
/*
创建监听用套接字,server_socket
并检测是否创建成功
*/
SOCKET client_socket = socket(AF_INET SOCK_STREAM IPPROTO_TCP); ;
if (client_socket == INVALID_SOCKET) {
//如果创建的socket无效,则结束程序
perror(“socket error !“);
return 0;
}
/*
创建地址结构,server_addr,并设置端口和IP
*/
sockaddr_in server_addr;
memset(&server_addr 0 sizeof(server_addr));
server_addr.sin_family = AF_INET;
//要连接的服务器端口号 8888
server_addr.sin_port = htons(8888);
//指定服务器的地址127.0.0.1
InetPton(AF_INET “127.0.0.1“ &server_addr.sin_addr.s_addr);
//与地址server_addr建立连接
if (connect(client_socket (SOCKADDR*)&server_addr sizeof(SOCKADDR)))
{
perror(“connect error !\n“);
return 0;
}
char REMOTE_file_name[FILE_NAME_MAX_SIZE + 1];
memset(REMOTE_file_name 0 FILE_NAME_MAX_SIZE + 1);
printf(“请输入要获取的服务器文件路径:\n“);
scanf_s(“%s“ REMOTE_file_name FILE_NAME_MAX_SIZE);
char LOCAL_file_name[FILE_NAME_MAX_SIZE + 1];
memset(LOCAL_file_name 0 FILE_NAME_MAX_SIZE + 1);
printf(“请输入保存文件的本地路径:\n“);
scanf_s(“%s“ LOCAL_file_name FILE_NAME_MAX_SIZE);
char buffer[BUFFER_SIZE];
memset(buffer 0 BUFFER_SIZE);
strncpy_s(buffer REMOTE_file_name strlen(REMOTE_file_name) > BUFFER_SIZE ? BUFFER_SIZE : strlen(REMOTE_file_name));
// 向服务器发送buffer中的数据
if (send(client_socket buffer BUFFER_SIZE 0) < 0)
{
perror(“发送文件名失败:“);
exit(1);
}
// 打开文件,准备写入
FILE *fp;
errno_t F_ERR = fopen_s(&fp LOCAL_file_name “wb“);
if (F_ERR != 0)
{
printf(“文件打开失败:%s\n“ LOCAL_file_name);
exit(1);
}
// 从服务器接收数据到buffer中
// 每接收一段数据,便将其写入文件中,循环直到文件接收完并写完为止
memset(buffer 0 BUFFER_SIZE);
int length = 0;
while ((length = recv(client_socket buffer BUFFER_SIZE 0)) > 0)
{
if (fwrite(buffer sizeof(char) length fp) < length)
{
printf(“文件写入失败:%s\n“ LOCAL_file_name);
break;
}
memset(buffer 0 BUFFER_SIZE);
}
printf(“\n成功从服务器接收文件\n存入本地目录:%s\n“ REMOTE_file_name LOCAL_file_name);
// 接收成功后,关闭文件,关闭socket、WSA
fclose(fp);
closesocket(client_socket);
WSACleanup();
system(“pause“);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-07-11 18:28 计网实验\
文件 1169268 2019-07-11 11:08 计网实验\计网实验3.doc
文件 700671 2019-07-11 11:07 计网实验\计网实验4.doc
文件 394943 2019-07-11 11:07 计网实验\计网实验2.docx
目录 0 2019-06-29 13:18 计网实验\PCT_Client\
目录 0 2019-06-29 13:18 计网实验\PCT_Client\.vs\
目录 0 2019-06-29 13:18 计网实验\PCT_Client\.vs\PCT_Client\
目录 0 2019-06-29 13:18 计网实验\PCT_Client\.vs\PCT_Client\v15\
文件 18944 2019-06-29 01:13 计网实验\PCT_Client\.vs\PCT_Client\v15\.suo
文件 34066432 2019-06-29 01:13 计网实验\PCT_Client\.vs\PCT_Client\v15\Browse.VC.db
目录 0 2019-06-29 13:18 计网实验\PCT_Client\.vs\PCT_Client\v15\ipch\
目录 0 2019-06-29 13:18 计网实验\PCT_Client\.vs\PCT_Client\v15\ipch\AutoPCH\
目录 0 2019-06-29 13:18 计网实验\PCT_Client\.vs\PCT_Client\v15\ipch\AutoPCH\ed9a692236ba195b\
文件 44630016 2019-06-29 00:27 计网实验\PCT_Client\.vs\PCT_Client\v15\ipch\AutoPCH\ed9a692236ba195b\源.ipch
目录 0 2019-06-29 13:18 计网实验\PCT_Client\Debug\
文件 41472 2019-06-29 00:28 计网实验\PCT_Client\Debug\PCT_Client.exe
文件 375380 2019-06-29 00:28 计网实验\PCT_Client\Debug\PCT_Client.ilk
文件 471040 2019-06-29 00:28 计网实验\PCT_Client\Debug\PCT_Client.pdb
目录 0 2019-06-29 13:18 计网实验\PCT_Client\PCT_Client\
目录 0 2019-06-29 13:18 计网实验\PCT_Client\PCT_Client\Debug\
文件 487 2019-06-29 00:28 计网实验\PCT_Client\PCT_Client\Debug\PCT_Client.log
目录 0 2019-06-29 13:18 计网实验\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\
文件 660 2019-06-29 00:28 计网实验\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\CL.command.1.tlog
文件 26886 2019-06-29 00:28 计网实验\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\CL.read.1.tlog
文件 504 2019-06-29 00:28 计网实验\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\CL.write.1.tlog
文件 213 2019-06-29 00:28 计网实验\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\PCT_Client.lastbuildstate
文件 1158 2019-06-29 00:28 计网实验\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\li
文件 3794 2019-06-29 00:28 计网实验\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\li
文件 488 2019-06-29 00:28 计网实验\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\li
文件 248832 2019-06-29 00:28 计网实验\PCT_Client\PCT_Client\Debug\vc141.idb
文件 143360 2019-06-29 00:28 计网实验\PCT_Client\PCT_Client\Debug\vc141.pdb
............此处省略44个文件信息
- 上一篇:基于ssm的家教管理系统
- 下一篇:永磁同步电机id=0控制,STM32F4程序
相关资源
- 密码学实验报告——古典密码、流程
- 广州大学微机原理与接口技术实验报
- 华中科技大学计算机学院计算机网络
- 东北大学web开发程序设计实践实验报
- 计网实验.zip
- 基于DCT算法视频压缩内含实验报告和
- 北邮计算机大三实验报告全
- [BUPT]北京邮电大学大学物理实验报告
- 东北大学操作系统实验报告+源代码
- 高频电子电路实验报告
- 系统分析设计实验报告
- 网络管理综合性实验报告(MIBBrowser
- 软件需求分析实验报告
- 国防科技大学编译原理课件ppt上机指
- 西南科技大学微机原理实验报告
- 北邮DSP硬件实验报告
- 北交大计网往年试卷.rar
- 51单片机迷宫游戏源码及实验报告
- 合肥工业大学宣城校区2017级《通信原
- 华南理工大学微机原理课件
- SSH电影后台管理系统实验报告 期末作
- 2017-广东工业大学数据库实验报告完整
- 2019西北工业大学数字电子技术实验课
- 信息安全实验报告
- 天津大学计算机组成原理课件实验复
- 中科大高级计算机网络 多页ppt打印版
- 医药管理系统 源码+实验报告
- 北京科技大学智能控制理论基础课件
- 无线移动网络实验报告.doc
- 编译原理实验报告 表达式中间代码生
评论
共有 条评论