套接字和客户端服务器模式.docx

套接字和客户端服务器模式.docx

ID:58474681

大小:12.79 KB

页数:10页

时间:2020-05-15

套接字和客户端服务器模式.docx_第1页
套接字和客户端服务器模式.docx_第2页
套接字和客户端服务器模式.docx_第3页
套接字和客户端服务器模式.docx_第4页
套接字和客户端服务器模式.docx_第5页
套接字和客户端服务器模式.docx_第6页
套接字和客户端服务器模式.docx_第7页
套接字和客户端服务器模式.docx_第8页
套接字和客户端服务器模式.docx_第9页
套接字和客户端服务器模式.docx_第10页
资源描述:

《套接字和客户端服务器模式.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、套接字和客户端服务器模式目录:1.什么是套接字?2.如何创建套接字?3.如何创建简单的服务器?4.如何创建简单的客户端?一什么是套接字很多教材中会讲解什么是套接字,这里我讲一下我的理解。我们想和另一个大楼的某个房间的美眉建立联系,可选的方案是知道对方的电话直接呼叫,另外就是利用对方的地址(大楼和房间)写信给她,这个就是基本的通信。其实这个过程和利用套接字建立联系是有很大相似的。我们知道IP可以标记一台主机,而端口则是标记具体的服务,套接字是主机对面服务接口的抽象,它屏蔽了内部的具体实现,我们可以利用它与另一个进程(不管是否

2、在一台主机上)建立通信。二如何建立套接字不管是linux还是windows都提供了一系列的socket函数,而套接字可以socket创建,函数的原型为intsocket(intdomain,inttype,intprotocal),domain一般会取AF_INET,这表示采用因特网域,type类型一般会取SOCK_STREAM和SOCK_DGRAM两种类型,分别对应着字节流和数据报两种类型。三如何创建简单的服务端服务端犹如那个美眉,我们要想联系知道她的地址。一般开放的美眉会向开开放自己的地址,等着帅哥过来主动联系,美眉为

3、了隐藏自己会用自己的小号与帅哥联系,而且可能还要保存着帅哥的信息以便以后可以继续联系。服务端会按照以下的方式进行创建:(1)创建套接字socket(2)这个套接字命名,即绑定地址:sockaddr_inbind(3)建立等待客户端连接的队列,设置套接字为监听状态listen(4)接受客户端的连接accept(5)关闭连接close备注:accept会返回一个套接字,服务端会利用这个套接字与客户端进行联系。等走完以上几个步骤后,一个简单的服务端程序就可以运行了啊,我们帅哥(客户端)就可以主动的联系我们的美眉了啊。四如何创建简

4、单的客户端客户端就是那个要主动联系美眉的角色,没有什么内涵,也不需要添加太多的功能,客户端可以按照一下流程就可以搞定:(1)创建套接字socket(2)连接服务端connect(3)关闭连接close通过以上流程,客户端就可以搞定了啊,客户端和服务端两者就可以畅快的通信了啊。服务端代码:1#include<iostream>2#include<sys/socket.h>3#include<sys/types.h>4#include<arpa/inet.h>5usingname

5、spacestd;67intmain()8{9//createsockethandle10intlisten_sock=socket(AF_INET,SOCK_STREAM,0);11if(listen_sock<0)12{13cout<<"createsocketerror"<<endl;14return-1;15}1617//bindsocket18structsockaddr_inserver_addr;19server_addr.sin_family=AF_INET

6、;20server_addr.sin_port=htons(5555);21server_addr.sin_addr.s_addr=inet_addr("127.0.0.1");22if(bind(listen_sock,(structsockaddr*)&server_addr,sizeof(server_addr))<0)23{24cout<<"bindsocketerror"<<endl;25close(listen_sock);26ret

7、urn-1;27}2829listen(listen_sock,5);30//waitforconnection31while(true)32{33intsock=accept(listen_sock,NULL,NULL);34send(sock,"helloworld",strlen("helloworld")+1,0);35close(sock);36}3738close(listen_sock);39return0;40}41客户端代码:1#include<iostrea

8、m>2#include<sys/socket.h>3#include<sys/types.h>4#include<arpa/inet.h>5usingnamespacestd;67constintBUFSIZE=128;8intmain()9{10//creat

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

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

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