- 33
- 0
- 约3.29万字
- 约 6页
- 2017-07-05 发布于河南
- 举报
实验三 基于TCP和UDPSocket 编程
实验三 基于TCP和UDP的SOCKET 编程
实验时间:第12、13、14周(6课时)
第一部分(2课时):
基于TCP的SOCKET 编程
一、预习要求:
TCP服务
UDP服务
SOCKET套接字
二、实验目的:
掌握TCP传输中服务端和客户端程序的设计
掌握TCP传输中服务端和客户端程序的设计
掌握SOCKET套接字的应用
三、实验环境:
VC++6.0
四、实验内容:
预备知识:
1、套接字( socket )
为了能方便的开发网络应用软件,由美国伯克利大学在UNIX上推出了一种应用程序访问通信协议的操作系统调用套接字(socket)。
Socket的出现,使程序员可以很方便的访问TCP/IP,从而开发了各种网络应用程序。
随着UNIX的应用推广,套接字在编写网络软件中得到了普及,后来套接字又被引进了WINDOWS等操作系统,成为开发网络应用程序的非常有效快捷的工具。
2、套接字类型
流式套接字(SOCK_STREAM),
提供面向连接、可靠的数据传输服务,数据无差错、无重复发送,且按发送顺序接收(TCP服务)。
数据报式套接字(SOCK_DGRAM)
提供无连接服务。数据包以独立包形式发送,不提供无错保证,数据可能丢失或重复,并且接受顺序混乱(UDP服务)。
原始套接字(SOCK_RAW)
3、主要相关函数
int WSAStartup(WORD HYPERLINK wVersionRequested, LPWSADATA HYPERLINK lpWSAData);
MAKEWORD();
int bind( SOCKET HYPERLINK s, const struct sockaddr FAR * HYPERLINK name, int HYPERLINK namelen);
int listen( SOCKET HYPERLINK s, int HYPERLINK backlog );
SOCKET accept( SOCKET HYPERLINK s, struct sockaddr FAR * HYPERLINK addr, int FAR * HYPERLINK addrlen);
int send( SOCKET HYPERLINK s, const char FAR * HYPERLINK buf, int HYPERLINK len, int HYPERLINK flags );
int recv( SOCKET HYPERLINK s, char FAR * HYPERLINK buf, int HYPERLINK len, int HYPERLINK flags );
int connect( SOCKET HYPERLINK s, const struct sockaddr FAR * HYPERLINK name, int HYPERLINK namelen );
int closesocket( SOCKET HYPERLINK s );
int WSACleanup (void);
任务一:创建TCP服务的服务端
实验步骤:
1)创建一个Win32 Console Application工程(Project),创建一个源文件(C++ Source File),命名为TcpSrv。
2)创建主程序main函数,首先用WSAStartup()函数加载套接字库和版本协商。
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, wsaData );
if ( err != 0 ) {
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( );
return;
}
3)利用socket()函数创建一个套接字,同时定义一个SOCKET sockSrv描述符,用来接收socket()函数的返回值。
SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);
4)定义一个SOCKADDR_IN类型的结构体变量,并进行初始化,然后利用bind()函数将该服务器和套接字绑定。
//定义一个SOCKADDR_IN类型的结构体变量,并进行初始化
您可能关注的文档
- 图层编辑处理.pdf
- 基于HBM算法高速反蠕虫引擎设计实现.pdf
- 基于89C51直流电机调速设计word格式源文件.pdf
- 基于GPRS通信DTU数据服务中心开发.pdf
- 基于GIS青海省供水水源点在空间尺度上有效配置研究.pdf
- 基于JPEG2000编解码芯片高清晰数字图像监控系统.pdf
- 基于Java底层网络通信.pdf
- 基于HLC颜色空间彩色淋巴瘤病理图像自动分割.pdf
- 基于LabVIEW任意函数发生器.pdf
- 基于LabVIEW与动态链接库光栅尺位移虚拟示波器设计.pdf
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
最近下载
- 梵音入汉:佛经汉译对汉语演进的多维影响.docx
- 小学低段音乐课堂管理方法的研究课题资料(包含申请表、开题报告、实施方案、结题报告等).pdf VIP
- 2026《隧道贯通误差预计计算案例》4000字.docx
- 2022-2023学年北京市丰台区高二(下)期末数学试卷(附答案详解).docx VIP
- 5m盐酸溶液的配制 -回复.pdf VIP
- 2026年新疆工程学院辅导员招聘备考题库最新.docx VIP
- 2026年新疆财经大学辅导员招聘备考题库必考题.docx VIP
- 2026年新疆农业大学辅导员招聘备考题库附答案.docx VIP
- 现代金属凝固技术课件(9056KB).ppt VIP
- 现代材料凝固技术.ppt VIP
原创力文档

文档评论(0)