实验06 socket编程基础练习

实验06 socket编程基础练习

ID:6318658

大小:420.00 KB

页数:10页

时间:2018-01-10

实验06  socket编程基础练习_第1页
实验06  socket编程基础练习_第2页
实验06  socket编程基础练习_第3页
实验06  socket编程基础练习_第4页
实验06  socket编程基础练习_第5页
资源描述:

《实验06 socket编程基础练习》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验六Socket编程基础练习1.实验目的1) 掌握Socket地址及其操作2) 掌握Socket基本函数,如socket、bing、listen、accept、send、recv等的应用2.实验前的准备3)阅读教材关于TCP/IP体系结构及数据包格式的相关内容4)阅读教材关于Socket的相关内容5)阅读WinSock编程指南6)阅读本实验所附内容7)熟悉VC++、C#或Java开发语言3.实验内容利用Java或C++语言,分别基于TCP和UDP编写一个简单的Client/Server网络应用程序。要求

2、实现客户向服务器传输任意一个字符串,服务器将收到的字符串变换成大写后传回客户。4.实验方式每位同学上机编程实验,实验指导教师现场指导。Socket编程基础知识可参考附录中的内容。5.实验报告在实验报告中要说明Socket编程的客户端和服务器端主要步骤、利用开发语言语言用到的主要类及其主要作用、实验过程和实验结果。10预备知识1.进程到进程的通信通信数据传输到计算机后,计算机必须区分各个进程的通信数据并提交给网络通信进程进行相应的处理,使用了ip地址加端口来区分具体的进程数据(ip:port)。2.套接字的

3、类型为了满足不同的通信程序对通信质量和性能的要求,一般的网络系统提供了三种不同类型的套接口,以供用户在设计网络应用程序时根据不同的要求来选择,三种类型套接口:n流式套接口(SOCK_STREAM)n数据报套接口(SOCK_DGRAM)n原始套接口(SOCK_RAW)3.地址结构三种地址结构:sockaddr_in:INET协议族地址结构in_addr :IPv4地址结构sockaddr:通用地址结构3.1INET协议族地址结构structsockaddr_in{shortsin_family;//地址族u

4、_shortsin_prot;//端口号structin_addrsin_addr;//IP地址charsin_zero[8];};nsin_family:地址族,一般填为AF_INETn另一组和AF_XXX类似的PF_XXX常量,与AF_INET相对应有PF_INET。10n历史上,PF_XXX被设计用于表示协议族,而AF_XXX用于表示地址族。最初的设想是单个协议族可以支持多个地址族,PF_XXX用于套接口的创建,AF_XXX用于套接口地址结构。n在Winsock2.h文件中,PF_XXX被定义为与A

5、F_XXX值完全相同。nsin_port:16位的IP端口,网络字节顺序nsin_addr:32位的IPv4地址,网络字节顺序nsin_zero:8个字节的0值填充,惟一的作用是使sockaddr_in结构大小与通用地址结构sockaddr相同。3.2IPv4地址结构structin_addr{union{struct{u_chars_b1,s_b2,s_b3,s_b4;}S_un_b;struct{u_shorts_w1,s_w2;}S_un_w;u_longS_addr;}S_un;#defines_

6、addrS_un.S_addr#defines_hostS_un.S_un_b.s_b2#defines_netS_un.S_un_b.s_b1#defines_impS_un.S_un_w.s_w2#defines_impnoS_un.S_un_b.s_b4#defines_lhS_un.S_un_b.s_b3};n有三种赋值接口:S_addr,S_un_b,S_un_wn最常用的赋值接口是S_addr和S_un_bnS_addr:32位的无符号整数,对应32位IPv4地址•若要将地址202.119.9

7、.199赋给in_addr结构,可以使用如下代码:in_addraddr;addr.S_un.S_addr=inet_addr(“202.119.9.199”);或简写为:in_addraddr;addr.s_addr=inet_addr(“202.119.9.199”);n其中,inet_addr函数用于转换点串IP地址nunsignedlonginet_addr(constcharFAR*cp);n参数:cp,点分IPv4字符串。n如果没有错误发生,函数返回32位的地址信息。n如果cp字符串包含的不是

8、合法的IP地址,那么函数返回INADDR_NONE。nS_un_b:包含4个8位无符号整数,组合起来表示IPv4地址:s_b1、s_b2、s_b3、s_b4比如:in_addraddr;10addr.S_un.S_un_b.s_b1=202;addr.S_un.S_un_b.s_b2=119;addr.S_un.S_un_b.s_b3=9;addr.S_un.S_un_b.s_b4=199;如使用本机设置的任意地址,可以使用如

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。