数据报套接字编程.ppt

上传人:小飞机 文档编号:5985878 上传时间:2023-09-11 格式:PPT 页数:14 大小:338.50KB
返回 下载 相关 举报
数据报套接字编程.ppt_第1页
第1页 / 共14页
数据报套接字编程.ppt_第2页
第2页 / 共14页
数据报套接字编程.ppt_第3页
第3页 / 共14页
数据报套接字编程.ppt_第4页
第4页 / 共14页
数据报套接字编程.ppt_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《数据报套接字编程.ppt》由会员分享,可在线阅读,更多相关《数据报套接字编程.ppt(14页珍藏版)》请在三一办公上搜索。

1、实验七 数据报套接字编程,程序流程,客户端代码,/*调试环境:VC+6.0程序名称:client.cpp客户端IP地址和端口:由系统指定程序功能:客户端程序向服务器发送数据Hello!I am a client.;客户端程序从服务器接收数据并进行显示命令格式:client 服务器IP地址命令举例:说明:上面设要给IP地址为、端口号为5050的服务器发送数据*/#include#include/将ws2_32.lib库加入到工程中进行编译#pragma comment(lib,ws2_32.lib)/服务器端口号为5050#define DEFAULT_PORT 5050/缓冲区长度#defin

2、e DATA_BUFFER 1024,客户端代码,void main(int argc,char*argv)WSADATA wsaData;SOCKET sClient;int iPort=5050;/服务器地址长度 int iLen;/接收数据的缓冲 int iSend;int iRecv;/要发送给服务器的信息 char send_buf=Hello!I am a client.;/接收数据的缓冲区 char recv_bufDATA_BUFFER;/服务器端地址 struct sockaddr_in ser;/处理命令行中输入的参数 if(argc2)/提示在命令行中输入服务器IP地址p

3、rintf(Usage:client server IP addressn);return;,客户端代码,/接收数据的缓冲区初始化 memset(recv_buf,0,sizeof(recv_buf);if(WSAStartup(MAKEWORD(2,2),客户端代码,/向服务器发送数据 iSend=sendto(sClient,send_buf,sizeof(send_buf),0,(struct sockaddr*),客户端代码,/从服务器接收数据 iRecv=recvfrom(sClient,recv_buf,sizeof(recv_buf),0,(struct sockaddr*),服

4、务器端代码,/*调试环境:VC+6.0程序名称:server.cpp服务器IP地址:由系统指定服务器端口:5050功能:从端口5050接收客户端发送来的数据,接收成功后显示从客户端收到的数据、客户端的IP地址和端口号;给客户端发送Hello!I am a server.字符串命令格式:server*/#include#include#include#pragma comment(lib,ws2_32.lib)/服务器端口号为5050#define DEFAULT_PORT 5050/接收数据缓冲区长度#define BUFFER_LENGTH 1024,服务器端代码,void main()in

5、tiPort=DEFAULT_PORT;WSADATAwsaData;SOCKETsSocket;/客户地址长度 intiLen;/发送的数据长度 intiSend;/接收的数据长度 intiRecv;/要发送给客户的信息 charsend_buf=Hello!I am a server.;/接收数据的缓冲区 charrecv_bufBUFFER_LENGTH;/本地地址和客户地址 struct sockaddr_inser,cli;,服务器端代码,printf(-n);printf(Server waitingn);printf(-n);if(WSAStartup(MAKEWORD(2,2)

6、,服务器端代码,/以下建立服务器端地址 ser.sin_family=AF_INET;/htons()函数把一个双字节主机字节顺序的数转换为网络字节顺序的数 ser.sin_port=htons(iPort);/htonl()函数把一个主机字节顺序的数转换为网络字节顺序的数=htonl(INADDR_ANY);if(bind(sSocket,(LPSOCKADDR)/进入一个无限循环,进行数据接收和发送,服务器端代码,while(1)/从客户端接收数据 iRecv=recvfrom(sSocket,recv_buf,BUFFER_LENGTH,0,(SOCKADDR*),服务器端代码,/给客户发送信息iSend=sendto(sSocket,send_buf,sizeof(send_buf),0,(SOCKADDR*),程序改进,改进一、客户端和服务器端传输从各自键盘输入的内容改进二、实现客户端和服务器端的多次交互传输改进三、将程序由客户端服务器端模式改为对等模式,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号