软件工程师(面试题)

软件工程师(面试题)

ID:27664392

大小:28.00 KB

页数:4页

时间:2018-12-05

软件工程师(面试题)_第1页
软件工程师(面试题)_第2页
软件工程师(面试题)_第3页
软件工程师(面试题)_第4页
资源描述:

《软件工程师(面试题)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、软件工程师--面试题编写一个基于TCP的C/S模式网络程序,TCP是基于流的协议,客户端发送的数据,服务端不一定会按照客户端的发送来收取比如:客户端调用了2次send()发送数据,第1次发送包头+数据,第2次同样。服务端调用recv()收取,有可能一次收完整,有可能只收到了包头,有可能收到了包头+部分数据,有可能收到了"包头+数据+包头+部分数据"等等情况。所以此题重点是可以正确处理TCP粘包,从接收缓冲区中正确的解析出数据包。发送包格式为:包头+数据+包头+数据...,包头结构如下:typedefstru

2、ct_PACKET_HEAD{ULONGOpCode;//操作码,可以无视。ULONGDataSize;//数据长度,紧跟在包头后面。}PACKET_HEAD,*LPPACKET_HEAD;4客户端:间隔100ms循环向服务端发送数据,其中PACKET_HEAD::DataSize随机生成,最小100字节,最多10KB,发送的数据随意。while(1){PACKET_HEADhead={0};head.DataSize==???;//随机长度send(sock,包头+数据缓冲区,总长度,0);Sleep(1

3、00);}服务端:收取客户端发送过来的数据,接收数据缓冲区长度固定为4KB,对收取的数据,按照包头+PACKET_HEAD::DataSize指定的长度正确解析,将正确的包头+数据写入文件里。while(1){4charbuf[1024*4]={0};intlen=recv(sock,buf,sizeof(buf),0);//根据buf中的数据,解析出正确的数据包。//......}要求:1.使用标准Socket完成,不得MFCSocket等类库。2.可以使用MFC/ATL/STL中的数据结构类简化编码,比

4、如CList,CMap等。3.使用Unicode编码,能够兼容32和64位,并且可以编译成原生64位程序。开发工具采用VS2008。/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////编写一个可以读取任意网页的程序,如geturl.exehttp://www.xx.com/xx.htmlx

5、x.html,将xx.html读取下来,保存为xx.html文件。4要求:1.使用标准Socket完成,不得使用WinInet或WinHTTP。2.能够处理HTTP响应头Content-Length和Transfer-Encoding两种情况。(google搜索页返回的HTTP数据就是Transfer-Encoding,可以在这里测试。)3.使用Unicode编码,能够兼容32和64位,并且可以编译成原生64位程序。开发工具采用VS2008。4

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

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

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