- 16
- 0
- 约3.52千字
- 约 5页
- 2018-12-31 发布于湖北
- 举报
实验三:编写简单的客户/服务器程序
3.1实验目的
熟悉客户/服务器交互模型,学习简单的socket编程方法,对网络通信和Socket编程模式要有一定的了解。
3.2实验要求
要求编写一个简单的客户/服务器程序,实现客户与服务器之间信息的传输,客户端向服务器发送时间、日期请求,服务器返回响应的消息,本实验使用的是CSocket类编程。
3.3实验原理
客户/服务器模型是互联网应用软件交互过程中最常用、最重要的模型。客户和服务器分别指两个应用程序,客户向服务器发送请求,
服务器做出响应。
客户机发送请求时,可能出现多个请求信息同时到达服务器的情况,所以就要求服务器具备处理多个并发请求的能力。TCP/IP互联网中,服务器程序通常使用TCP协议或UDP协议的端口号作为自己的特定标识。服务器启动后,在本地主机注册自己使用的端口号,客户端访问某服务时,可以通过与服务器使用的TCP端口建立连接(或直接向服务器程序使用的UDP端口发送信息)来实现。
CAsyncSocket是一个异步非阻塞Socket封装类,而CSocket类是CAsyncSocket 类的派生类,它在继承了CAsyncSocket类的所有函数的同时提供了比CAsyncSocket类更高层的网络编程接口。本实验选用的是CSocket类编程。
3.4实验内容
3.4.1客户端设计
(1)在VC++6.0环境中进行界面设计,定义控件变量
图1:客户端界面
(2)初始化界面,并创建套接字clientsock,
SOCKET s;
s=::socket(AF_INET,SOCK_STREAM,0);
:: WSAAsyncSelect(s,this-m_hWnd,WM_SOCKET, FD_READ);
(3) 在实验中使用了WSAAsyncSelect();它是基于消息机制的,在void CTCPDlg::OnSocket(WPARAM wParam,LPARAM lParam)处理网络事件类型,FD_READ表示应用程序想要接收有关是否可读的通知,以便读入数据,下面是读取服务器日期的主要代码,读取时间的代码类似,就不再列举:
SYSTEMTIME dateServer;
recv(s,(char *)dateServer,sizeof(SYSTEMTIME),MSG_PEEK);
CString str1, str2;
str1.Format(%2d-%2d-%2d,dateServer.wYear,dateServer.wMonth,dateServer.wDay);
GetDlgItem(IDC_EDIT1)-SetWindowText(str);
(4)双击“连接”按钮并编辑代码,实现把Edit控件中输入的数值读取到已经定义好的控件变量中,并与指定IP地址、端口号的服务器建立连接。主要的实现代码如下(有省略):
GetDlgItem(IDC_ADDR)-GetWindowText(str);//获取Edit中的输入值
GetDlgItem(IDC_PORT)-GetWindowText(str1);
//填充套接字结构
port=atoi(str1.GetBuffer(1));
addr.sin_family=AF_INET;
addr.sin_addr.S_un.S_addr=inet_addr(str.GetBuffer(1));
addr.sin_port=ntohs(port);
//建立连接
::connect(s,(sockaddr*)addr,sizeof(addr)
(5)与服务器建立连接后,下一步就是要发送数据,双击“请求命令”按钮并编辑代码:
GetDlgItem(IDC_SENDTEXT)-GetWindowText(str);//获取输入的命令
if(str==)
{
MessageBox(发送的信息不能为空!!);
}
else
{
::send(s,str.GetBuffer(1),sizeof(str),0);//不为空时就发送
}
(6)closesocket(),关闭套接字clientsock,结束TCP对话。
3.4.2服务器端设计实验步骤
(1)在VC++6.0环境中进行界面设计,定义控件变量
图2:服务器端界面
(2)初始化界面并创建流式套接字s
// 初始化Listbox:
DWORD dwStyle;
dwStyle = m_list.GetStyle();//列表类型
dwStyle |= LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT |LVS_SHOWSELALWAYS ; //绘制表格 选择整行
m_list.SetExten
您可能关注的文档
最近下载
- 2025成都农商银行授信审查岗社会招聘15人笔试备考试题及答案解析.docx VIP
- 2025春统编版(2024)道德与法治一年级下册教学设计(附目录)(名师教案)表格版.docx VIP
- 《2026版CSCO卵巢癌诊疗指南》解读PPT课件.docx
- 大汉塔机QTZ80(6010)说明书.pdf VIP
- 2025成都农商银行授信审查岗社会招聘笔试备考试题及答案解析.docx VIP
- 变压器现场安装培训课件.pptx VIP
- 道岔转辙设备的运行与维护教案教学能力比赛.pdf
- 工作人员卫生状况监控记录食品公司.pdf VIP
- 维修电工培训培训教材.ppt VIP
- 绘本阅读在幼儿园主题活动中的实践研究.docx VIP
原创力文档

文档评论(0)