- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Csocket编程
使用socket写代码主要是要看自己的需求是什么。
如果通信时,内容很重要就要使TCP方式。
如果用户数太多,可能就要使用UDP方式了。
在TCP模式下,最简单的方式就是这样的,使阻塞方式:
服务端:
1.初始化socket环境,创建socket
2.梆定一个端口
3.开始监听
4.接收客户端
5.接收到客户端之后,使用这个socket来与这个客户通信
#include stdAfx.h
#include winsock2.h
#include mswsock.h
#include iostream
using namespace std;
#pragma comment(lib, ws2_32.lib)
#pragma comment(lib, mswsock.lib)
DWORD IniSOCKDLL()
{
WORD wVersionRequested;
WSADATA wsaData;
int err=0;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, wsaData );
return err;
}
int main(int argc, char* argv[])
{
cout程序开始endl;
IniSOCKDLL();
SOCKET ss=WSASocket(AF_INET,
SOCK_STREAM,
0,
NULL,
0,
NULL);
SOCKADDR_IN addr;
int len;
addr.sin_family=AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_port = htons(1002);
len=sizeof(addr);
bind(ss , (PSOCKADDR)addr , len);
listen(ss,5);
SOCKET sc=accept(ss,(PSOCKADDR)addr,len);
char buff[1024];
ZeroMemory(buff,1024);
recv(sc,buff,1024,0);
coutbuffendl;
ZeroMemory(buff,1024);
memcpy(buff,123,3);
send(sc,buff,3,0);
closesocket(sc);
closesocket(ss);
return 0;
}
客户端:
1.初始化socket环境,创建socket
2.连接服务端
3.开启一个线程来接收数据
4.使用send直接发数据包
#include stdAfx.h
#include winsock2.h
#include mswsock.h
#include iostream
using namespace std;
#pragma comment(lib, ws2_32.lib)
#pragma comment(lib, mswsock.lib)
DWORD IniSOCKDLL()
{
WORD wVersionRequested;
WSADATA wsaData;
int err=0;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, wsaData );
return err;
}
int main(int argc, char* argv[])
{
IniSOCKDLL();
SOCKET sc=WSASocket(AF_INET,
SOCK_STREAM,
0,
NULL,
0,
NULL);
SOCKADDR_IN addr;
int len;
addr.sin_family=AF_INET;
addr.sin_addr.s_addr = inet_addr(127.0.0.1);
addr.sin_port = htons(1002);
len=sizeof(addr);
connect(sc, (struct sockaddr *)addr, len);
char buff[1024];
ZeroMemory(buff,1024);
memcpy(buff,123,3);
send(sc,buff,3,0);
recv(sc,buff,1024,0);
coutbuffendl;
closesocket(sc);
return 0;
}
由这个我们可以做一个这样的模型:
为每个阻塞函数开一个线程,让它来处理。
这就要留意退出的时候把这一些线程给关闭。
当然TCP方式的模型还有事件选
您可能关注的文档
- 风机日常维护.ppt
- 顶级豪宅智能化解决PPT方案演示.ppt.ppt
- 顶级豪宅智能化解决PPT方案演示-NICO尼科.ppt.ppt
- 风电场运行维护与管理 教学课件 丁立新 模块四 风力发电机组维护检修.ppt
- 风资源评估与风电场选址讲义(精品).ppt
- 风景园林建筑设计基础(教材版)84p.ppt
- 风火深圳南山后海海岸城商业项目广告推广思.ppt.ppt
- 顶级豪宅智能化解决ppt方案演示-nico尼科【ppt】.ppt
- 高2013级1班班情分析交流会.ppt.ppt
- 高一英语必修1第2单元课件1_其它课程_初中教育_教育专区.ppt.ppt
- 8592新员工培训安全生产培训.DOC
- 415墙面干挂石材施工工艺标准.ppt
- 17 聯合目錄查詢範例1 政大圖書館.ppt
- 03电子不停车收费标准体系及成套检测技术.ppt
- Introductory Chemistry Concepts & Connections 4th Edition 介绍化学概念&;连接第四版.ppt
- SYJ 400190长输管道线路工程施工及验收规范.DOC
- 万州电大开 放英语I11—18单元网上作业参考 答 案.doc
- 万科东京建物学习概要及组织架构及如何考核项目经理.ppt
- 万科股份有限公司盈利能力分析及评价毕业论文.docx
- 万科董事长王石谈如何选拔人才.doc
原创力文档


文档评论(0)