欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    scoket编程(一对多).docx

    • 资源ID:469364       资源大小:23.16KB        全文页数:11页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    scoket编程(一对多).docx

    scoket编程(一对多)serverDIg.h文件IllllllllllllllllllllllllllllllllllllllllllllllllllllllinIiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiipublic:/接受到的消息CListBoxm_edMSg;/发送的消息CEditm_edSend;CStringm_strSend;/套接字SOCKETsock;/套接字数组,用来一对多SOCKETmsgsock50;/客户段套接字SOCKETclisock;/地址簇长度intm_nAddlen;/地址簇SockaddrJnserv;intm_nCount;public:/获取空闲的SOCKET数组号intgetcount();/向所有的客户端发送消息voidsendtoall(SOCKETzchar*);/Illlllllllllllllllllllllllllllllllllllllllllllllllin.cpp文件1、在server.cpp中初始化socket2、在构造函数中初始化套接字数组:for(inti=0;i<50;i+)(msgsocki=NULL;)3、在OnlnitDialOg()中创建套接字/设定地址serv.sin_addr.s_addr=htonl(INADDR_ANY);serv.sin_family=AFJNET;serv.sin_port=5000/*m_uPort*/;m_nAddlen=sizeof(serv);GetDlgItem(IDCBUTTON,SEND)->EnableWindow(FALSE);/创建SOCKETsock=socket(AFJNETzSOCK_STREAM/*SOCK_DGRAM*/,0);绑定if(bind(sockz(sockaddr*)8iservzm-nAddlen)(intnError=GetLastErrorO;m_edMSg.AddString(_T("绑定失败!");)elsem_edMSg.AddString(_T("创建服务器成功!");listen(sock,5);/创建服务器线程AfxBeginThread(8iServerThreadz0);)4、服务器线程函数/服务器线程函数UINTServerThread(LPVOID)(CStringStrText;USES_CONVERSION;charbuff100=0;CSizesize;size.c×=O;size.cy=30;intS=LmSgCOUnt,IooP=LfIag=O;/CServerDIg*dig(CServerDlg*)Af×GetMainWnd()->GetSafeHwnd();CServerDIg*dig(CServerDlg*)AfxGetApp()->GetMainWnd();if(dig=NULL)return-1;msgcount=dlg->getcount();if(msgcount=-1)loop=O;if(loop)S=1;dlg->msgsockmsgcount=accept(dlg->sockz(sockaddr*)8i(dlg->serv)x(dlg->m-nAddlen);if(dlg->msgsockmsgcount=INVALID_SOCKET)(intnError=GetLastErrorO;dlg->m_edMSg.AddString(_T("accpetfailed");)else(AfxBegiThread(ServerThreadz0);dig->SetForegroundWindowO;dlg->m_edMSg.AddString(_T(,n);dlg->m_edMSg.AddString(_T("连接!");s=recv(dlg->msgsockmsgcountzbuff100z0);StrText=inet_ntoa(dlg->serv.sin_addr);dlg->m-edMSg.AddString(*strText*A2W(buff);dlg->GetDlgItem(IDC_BUTTON_SEND)->EnableWindow(TRUE);while(s!=SOCKET.ERROR)/循环接收数据s=recv(dlg->msgsockmsgcountzbuft100z0);dig->SetForegroundWindowO;if(s!=SOCKET_ERROR)dlg->m_edMSg.AddString(A2W(buff);dlg->sendtoall(dlg->msgsockmsgcount,buff);)send(dlg->msgsockmsgcountz"Disconnected,100z0);dig->m_edMSg.AddString(_T("Disconnected");dig->msgsockmsgcout=NULL;for(inti=0;i<50;i+)if(dlg->msgsocki!=NULL)flag=l;if(flag!=1)(dlg->GetDlgItem(IDC_BUTTON_SEND)->EnableWindow(FALSE);)closesocket(dlg->msgsockmsgcount);)终止线程AfxEndThread(O);return0;5、发送消息/获取没使用的SOCKET数组号intCServerDlg:getcount()(for(inti=0;i<50;i+)if(msgsocki=NULL)returni;)return-1;voidCServerDlg:sendtoall(SOCKETszchar*buffer)(for(inti=0;i<50;i+)(if(msgsocki=NULL&&msgsocki!=s)发送send(msgsockizbufferx100z0);)/Iiiiiiiiiiiiiiiiiiiiiiiiiiiii客户端代码ClientDld.h/Iiiiiiiiiiiiiiiiiiiiiiiiiiiiin客户端套接字SOCKETclisock;/地址簇SockaddrJncli;intm_nCount;intm_nEe;/IiiiiiiiiiiiiiiiiiiiiiiiiiiiiclientDlg.cpp/Iiiiiiiiiiiiiiiiiiiiiiiiiiiii1、在clien.cpp中初始化socketif(!AfxSocketInitO)(/AfxMessageBox(IDP_SOCKETSJNIT_FAILED);returnFALSE;)2、连接服务器voidCciientDlgzonBnciickedButtonConnetO/连接服务器UpdateDataO;USES,CONVERSION;charipaddress35;/m-edIRGetWindowText(A2W(ipaddress)z30);strcpy(ipaddresszW2A(m_strIP);cli.sin_addr.s_addr=inet_addr(ipaddress);cli.sin_family=AFJNET;cli.sin_port=m_uPort;创建socketclisock=socket(AFJNETzSOCK.STREAMzO);mnEe=1;启动线程AfxBeginThread(threadzO);)3、客户端线程函数/客户端线程UINTthread(LPVOIDv)(charbuff100;chararray2530=,1155.245.160.1511,l”155.245.160.152”,"155.245.160.153,“155.245.160.154”,”155.245.160.155”,”155.245.160.156”,”155.245.160.157”,”155.245.160.158”,155.245.160.159nz”155.245.160.160”,,155.245.160.161”155.245.160.162“,”155.245.160.163”,155.245.160.164"z”155.245.160.165”,”155.245.160.166”,n155.245.160.167n,”155.245.160.168”,155.245.160.169nz"155.245.160.1701,z,155.245.160.171”155.245.160.172”,,155.245.160.173,”155.245.160.174”,n155.245.160.175n);USES_CONVERSION;ints=lzaddcount=0;CCIientDIg*dig=(CCIientDlg*)AfxGetApp()->GetMainWndO;if(dig=NULL)return-1;dlg->GetDlgItem(IDC_BUTTON_CONNET)->EnableWindow(FALSE);dlg->GetDlgItem(IDC_BUTTON_CLOSE)->EnableWindow(FALSE);/连接服务器while(connect(dlg->clisockz(sockaddr*)8i(dlg->cli)xsizeof(dlg->cli)&&dlg->m_nEe

    注意事项

    本文(scoket编程(一对多).docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开