- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCPIP協议实验报告
TCP IP协议实验报告
一 实验名称:基于TCP的客户、服务器通信程序
组员:潘誉 0304110428 谢陈洁 0304110430
实验时间:2014-3-11
二 实验目的:通过此次实例对网络程序的基本框架有个比较清楚的认识,为后面设计比较复杂的网络程序打好基础。
三 实验内容
本程序使用了visual c++ 6.0下的控制台程序“win32 console application”。控制台程序结构一目了然。该程序中通信协议使用的是面向连接的TCP协议,服务端的IP地址使用系统指定的IP地址,端口号在程序中指定为5050,用符号常量来定义。服务器端的功能是只要有客户请求连接,服务器就接受连接,在连接成功后,服务器就向请求连接的客户端发送内容,如果发送过程正确完成,则显示所发送的字节数。客户端功能是向服务器发出连接请求,在连接成功后,接受并显示从服务端收到的信息。
四 程序清单
服务器端代码
// TcpServer.cpp : Defines the entry point for the console application.
//
#include stdafx.h
#include Winsock2.h
#include stdio.h
#include stdlib.h
#define DEFAULT_PORT 5050
#define BUF_SIZE 1024
void main(int argc, char* argv[])
{
//printf(Hello World!\n);
//return 0;
int iPort = DEFAULT_PORT;
WSADATA wsaData;
SOCKET sListen, sAccept;
int iLen;
int iSend;
char buf[] = I am a server.;
struct sockaddr_in ser, cli;
char receiver[BUF_SIZE];
char username[BUF_SIZE];
memset(receiver, 0, sizeof(receiver));
memset(username, 0, sizeof(username));
printf(-----------------------\n);
printf(Server waiting\n);
printf(-----------------------\n);
if (WSAStartup(MAKEWORD(2, 2), wsaData) != 0) {
printf(Failed to load Winsock.\n);
return ;
}
sListen = socket(AF_INET, SOCK_STREAM, 0);
if (sListen == INVALID_SOCKET) {
printf(socket() Failed:%d\n, WSAGetLastError());
return ;
}
ser.sin_family = AF_INET;
ser.sin_port = htons(iPort);
ser.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind(sListen, (LPSOCKADDR)ser, sizeof(ser)) == SOCKET_ERROR) {
printf(bind() Failed: %d\n, WSAGetLastError());
return ;
}
if (listen(sListen, 5) == SOCKET_ERROR) {
printf(listen() Failed: %d\n, WSAGetLastError());
return;
}
iLen = sizeof(cli);
while(1) {
sAccept = accept(sListen, (struct sockaddr*)cli, iLen);
if (sAccept == INVALID_SOCKET) {
printf(accept() Failed:%d\n, WSAGetLastError());
break;
}
printf(Accepted client IP:[%s], port:[%d]\n,
inet_ntoa(cli.sin_addr),
ntohs(cli.sin_port));
您可能关注的文档
最近下载
- 《市级国土空间生态修复规划编制指南》.pdf
- 坠床跌倒护理持续质量改进ppt.pptx
- 英语新闻ppt(含讲稿).pptx VIP
- 感觉信息处理及自我调节能力检核表Sensoryprocessingandself-regulationchecklist,SPSRC.docx
- 做守纪知纪明纪的模范.pptx VIP
- 餐厅服务方案.docx VIP
- 苏教版三年级数学上册知识点整理.docx VIP
- 【微专题】2014-2024高考语文文言文挖空训练( I 卷、II 卷、甲卷、乙卷)教师版.doc VIP
- 公司安全事故隐患内部举报、报告奖励制度范本.docx
- 第一单元《中国共产党的领导》练习题试题含答案.docx VIP
文档评论(0)