- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP/IP——基于TCP通信的群聊 级 学 号 姓 名 计科1101班 0304110125 段广花 计科1101班 0304110106 冯小龙 计科1101班 0304110117 杨凯军 一、目的
通信方式多人
二、
1. 群聊流程
2. 事件对象I/O管理、VS2010上创建C++控制台应用程序Server(服务器端),Send和Recv客户端);
;
修改代码。、Server部分:#includeWinsock2.h
#includestdio.h
#includestring.h
#includeiostream
//服务器端口号为5050
#define DEFAULT_PORT 5050
//接收数据缓冲区长度
#define BUFFER_LENGTH 1024
#pragma comment(lib,ws2_32.lib)
using namespace std;
void main()
{
int iPort = DEFAULT_PORT;
WSADATA wsaData;
SOCKET sSocket;
//客户地址长度
int iLen;
//发送的数据长度
int iSend;
//接受的数据长度
int iRecv;
//要发送给客户的信息
char send_buf[BUFFER_LENGTH];
//接收数据的缓冲区
char recv_buf[BUFFER_LENGTH];
//本地地址和客户地址
struct sockaddr_in ser, cli;
struct sockaddr_in temp;
//struct sockaddr_in clis[100];
char **clis;
printf(----------------------\n);
printf(Sercer Waiting\n);
printf(----------------------\n);
if(WSAStartup(MAKEWORD(2, 2), wsaData) != 0)
{
printf(Failed to load Winsock.\n);
return;
}
//产生服务器端套接口
sSocket = socket(AF_INET, SOCK_DGRAM, 0);
if(sSocket == 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);
temp.sin_family = AF_INET;
temp.sin_port = htons(iPort);
if(bind(sSocket, (LPSOCKADDR)ser, sizeof(ser)) == SOCKET_ERROR)
{
printf(bind() Failed: %d\n, WSAGetLastError());
return;
}
iLen = sizeof(cli);
int i = 0;
int *flag;
clis = new char*[100];
flag = new int[100];
char s2[] = quit;
while(1)
{
memset(recv_buf, 0, sizeof(recv_buf));
iRecv = recvfrom(sSocket, recv_buf, BUFFER_LENGTH, 0, (SOCKADDR*)cli, iLen);
if(i1)
{
clis[i] = new char[strlen(inet_ntoa(cli.sin_addr))];
strcpy(clis[i],inet_ntoa(cli.sin_addr));
flag[i] = 1;
if(iRecv == SOCKET_ERROR)
{
printf(recvfrom() Failed: %d\n, WSAGetLastError());
break;
}
else
if(iRecv == 0)
break;
else
{
printf(Accepted client IP:[%s],port:[%d]\n, inet_ntoa(cli.sin_
您可能关注的文档
- 61楼高大板模板.doc
- 62常用屋面找平层通用施工工艺0.doc
- 6实验1-2 蛋白质的性质实验.doc
- 6路基填筑作业指导书.doc
- 6常微分方程的求解.doc
- 7.高大模板技术交底.doc
- 7.泌尿生殖疾病 现代医学,基础医学.doc
- 6预应力混凝土连续箱梁施工施工作业指导书.doc
- 70的模拟基金经理已开始建仓.docx
- 7131 信息安全与保密概论.doc
- [普洱]2024年云南普洱市融媒体中心急需紧缺人才招聘8人笔试历年高频考点(难、易错点)附带答案详解.docx
- [普洱]2024年云南普洱市人力资源和社会保障局招聘城镇公益性岗位工作人员笔试历年高频考点(难、易错点)附带答案详解.docx
- [普洱]2023年云南普洱景谷县威远镇卫生院编外专业技术人员招聘6人笔试历年高频考点(难、易错点)附带答案详解.docx
- [普洱]2024年云南普洱宁洱县医疗卫生事业单位急需紧缺人才招聘11人笔试历年高频考点(难、易错点)附带答案详解.docx
- [普洱]2024年云南普洱孟连县医疗卫生事业单位急需紧缺人才招聘6人笔试历年高频考点(难、易错点)附带答案详解.docx
- [晋城]山西晋城市残疾人联合会党组引进高层次人才笔试历年高频考点(难、易错点)附带答案详解.docx
- [晋城]山西晋城市文化和旅游局党组引进高层次人才10人笔试历年高频考点(难、易错点)附带答案详解.docx
- [普洱]云南普洱墨江哈尼族自治县审计局招聘驾驶员笔试历年高频考点(难、易错点)附带答案详解.docx
- 江西省九江市修水县2023-2024学年八年级下学期6月期末语文试题.docx
- 新版标准日本语初级下册语法总结.docx
最近下载
- 三年级下册口算天天100题(A4打印版).pdf
- 青岛版数学八年级上整册(同步课时训练+综合提升训练+章末专题训练+各单元测试卷+期中期末测试卷,PDF版).pdf
- 人教版四年级上册数学第三单元《角的度量》测试卷及参考答案一套.docx
- 小学英语 It s not easy to be a mother 课件.pptx VIP
- 一年级下册美术《介绍我喜欢的玩具》公开课教案.docx
- 苏教版五年级上册数学全书课件.ppt
- 信息技术微能力A5 小学数学《摆一摆 想一想》课堂导入案例.docx
- 《My favourite colour》教学设计教学目标.doc
- (苏教版)小学数学五年级下册暑假作业设计.doc
- SKF轴承选型样本-2019.pdf
文档评论(0)