当前位置: 首页 > news >正文

如何分析竞争对手的网站市场营销策划方案书

如何分析竞争对手的网站,市场营销策划方案书,青海最新信息,成都比较好的网站建设公司TCP/IP协议是什么? TCP/IP的英文全称是Transmission Control Protocol/Internet Protocol,即传输控制协议/网际协议,是一个标准的协议集合。TCP/IP网络模型分为四层:应用层、传输层、网络层、网络接口。TCP/IP协议集合分布在传输…

TCP/IP协议是什么?

TCP/IP的英文全称是Transmission Control Protocol/Internet Protocol,即传输控制协议/网际协议,是一个标准的协议集合。TCP/IP网络模型分为四层:应用层、传输层、网络层、网络接口。TCP/IP协议集合分布在传输层、网络层和数据链路层。其中,传输层包括TCP、UDP,网络层包括IP、ICMP、IGMP,数据链路层包括ARP、RARP。

 

Socket是什么?

抽象的理解,socket就像一个门,它是应用层众多用户进程与传输层之间的门。我们可以控制门一侧的应用程序,而不能控制传输层这一侧的东西,充其量,只能设置一些TCP参数,如最大缓冲区大小和最大报文段长度等。Socket帮我们屏蔽了底层负责的协议集合,帮我们去组织数据,符合指定的协议。

形象的理解,socket中TCP的编程,就像生活中打电话,你要打电话给一个朋友,先拨号,朋友听到电话铃声后提起电话,这时你和你的朋友就建立起了连接,就可以对话了。等对话结束,挂断电话结束此次交流。

具体到编程中,套接字socket是由美国伯克利大学在UNIX上推出的一种应用程序访问网络协议的操作系统调用,socket方便了程序员访问TCP/IP协议,更容易开发网络应用软件。后来,套接字被引进到windows平台,成为开发网络应用程序的有效工具。

 

Windows下socket编程的步骤是怎样的?

以服务器端为例:

1) 准备工作

程序包含WINSOCK2.H或MSWSOCK.H,添加动态链接库WS2_32.LIB或WSOCK32.LIB。

2) 初始化Windows socket

每个winsock应用都必须加载winsock.dll的相应版本。使用WSAStartup()函数。

3) 创建socket

使用socket()函数,函数为SOCKET类型。

4) 定地

设置服务器IP地址和端口号,存储地址信息的结构类型为SOCKADDR_IN。

5) 绑定

将3)步创建的套接字绑定到4)步中设置的一个已知地址上。

6) 开始监听

使用listen()函数。

7) 接受客户端连接

8) 和客户端通信

9) 结束服务并清理Windows Socket和相关数据,或返回第5)步

 

Windows网络编程中的常用函数和变量类型?

1) 创建socket时的两个函数WSASocket和socket

SOCKET WSASocket(
  __in          int af,
  __in          int type,
  __in          int protocol,
  __in          LPWSAPROTOCOL_INFO lpProtocolInfo,
  __in          GROUP g,
  __in          DWORD dwFlags
);
SOCKET WSAAPI socket(
  __in          int af,
  __in          int type,
  __in          int protocol
);

前者是微软专门为windows操作系统开发的socket编程接口,而后者是通用网络编程接口。这里只讨论socke函数。

af,代表协议的地址家族,如果想建立一个UDP或TCP套接字,可用常量AF_INET来指代互联网协议(IP)。

type,代表协议的套接字类型,可以有下面五个值:SOCK_STREAM、SOCK_DGRAM、SOCK_SEQPACKET、SOCK_RAW、SOCK_RDM。

Protocol,当指定的地址家族和套接字类型有多个条目时,就可以用这个参数来限定使用特定传输,设定为0时,系统根据af和type自动选择相应的传输。

2) 定址

服务器打算监听客户机请求时,必须指定一个IP地址和一个端口号;客户机需要和服务器通信时,也必须指定服务器的IP地址和服务端口号。

struct SOCKADDR_IN

{

       short                     sin_family

       u_short                  sin_port;

       structin_addr         sin_addr;

       char                      sin_zero[8];          

};

sin_family设为AF_INET,以告知winsock此时正在使用IP地址家族。sin_port指定端口号。关于端口号0~1023为固定服务保留的,1024~49151为普通用户的进程或程序使用的。sin_addr用于把一个IP地址保存为一个4字节的数。而inet_addr可把一个点式IP地址转换为一个32位的无符号长整数。这个函数把IP地址当作一个按网络字节顺序排列的32位无符号长整数返回。它的定义如下:

unsigned long inet_addr(
  __in          const char* cp
);

同样,在设置端口号时,也设计“网络字节”顺序和“本机字节”顺序的问题,Inte 86处理器上,用“小头”形式来表示多字节编号:字节的排序是从最无意义的字节到最有意义的字节。在网络上指定IP地址和端口号时,需指定多字节值用“大头”形式来表示,成为“网络字节”顺序。专门用于两者转换的函数是htonl和htons,分别返回长整型或短整型。

3) 绑定

将创建的套接字与已知地址绑定,使用bind函数,定义如下:

int bind(
  __in          SOCKET s,
  __in          const struct sockaddr* name,
  __in          int namelen
);

第一个参数s代表等待客户机连接的那个套接字。第二个参数是一个普通的缓冲区,需要根据使用的协议,填充一个struct sockaddr类型的指针。第三个参数代表由协议决定的地址的长度。

4) 监听

将套接字设置为监听模式,bind函数只是将一个套接字和一个指定的地址关联在一起,指示一个套接字等候进入连接的函数则是listen。定义如下:

int listen(
  __in          SOCKET s,
  __in          int backlog
);

第一个参数s代表已与指定地址绑定的套接字。第二个参数backlog代表队列中等待处理的请求最大数目。

5) 接受请求,

注意:每接受一个连接请求,将返回一个新的套接字,对应于已经接受的那个客户机连接。对于该客户机后续的所有操作,都应使用这个新套接字。原来的那个监听套接字仍然用于接受其他客户机连接,而且仍处于监听模式。

接受请求的函数定义如下:

SOCKET accept(
  __in          SOCKET s,
  __out         struct sockaddr* addr,
  __in_out      int* addrlen
);

第一个参数s代表处于监听模式的套接字,第二个参数代表一个有效的SOCKADDR_IN结构的地址,第三个参数addrlen代表SOCKADDR_IN结构的长度。

6) 发起连接(客户机)

连接使用connect函数,其定义如下:

int connect(
  __in          SOCKET s,
  __in          const struct sockaddr* name,
  __in          int namelen
);

第一个参数s代表即将在其上面建立连接的客户机套接字,第二个参数name是服务端套接字地址,第三个参数是套接字地址的长度。

7) 数据传输

对于TCP方式,收发数据使用send和recv函数。定义如下:

int send(
  __in          SOCKET s,
  __in          const char* buf,
  __in          int len,
  __in          int flags
);
int recv(
  __in          SOCKET s,
  __out         char* buf,
  __in          int len,
  __in          int flags
);

第一个参数s代表已经建立连接的套接字,第二个参数buf代表字符缓冲区,区内包含即将发送的数据,第三个参数len代表即将发送的缓冲区的字符数。第四个参数flags可为0、MSG_DONTROUTE或MSG_OOB。

对于UDP方式,收发数据使用recvfrom和sendto函数。定义如下:

int recvfrom(
  __in          SOCKET s,
  __out         char* buf,
  __in          int len,
  __in          int flags,
  __out         struct sockaddr* from,
  __in_out      int* fromlen
);
int recvfrom(
  __in          SOCKET s,
  __out         char* buf,
  __in          int len,
  __in          int flags,
  __out         struct sockaddr* from,
  __in_out      int* fromlen
);

由于UDP先前不需要建立连接,所以发送数据和接受数据时,需要制定对方的IP地址信息。

8) 中断连接

完成任务,就应该关掉连接,释放关联到套接字的所有资源。执行closesocket即可,但closesocket可能会带来负面影响,即可能会导致数据的丢失。所以在调用closesocket函数之前,利用shutdown函数可从容中断连接。

 

http://www.ritt.cn/news/12314.html

相关文章:

  • 临西网站建设费用seo这个行业怎么样
  • 网站评论 设计百度的官方网站
  • 很多网站的微信登录怎么做台州网站建设
  • 广州市天河区网站设计公司百度怎么优化网站排名
  • 自己制作一个网站需要多少钱凡科建站靠谱吗
  • 网站资料清单seo运营学校
  • 企业建站1年网站的宣传推广方式
  • 自适应网站和响应式网站的区别软考十大最靠谱it培训机构
  • b2b2c网站建设谷歌浏览器怎么下载
  • 什么是传统网站韩国比分预测
  • 视频网站用什么做的关键词排名 收录 查询
  • 网站建设原因分析广告做到百度第一页
  • 网站如何做反爬百度指数批量
  • 注册公司那家网站做的比较好微博付费推广有用吗
  • 性价比最高网站建设价格焦作关键词优化排名
  • 网站模板下载免费橘子seo历史查询
  • 做博彩网站的虚拟空间seo站群优化
  • 网站开发属于什么专业旅游最新资讯 新闻
  • 静态html网站打包成exe淘宝搜索关键词排名查询工具
  • 上海装修公司排名有哪些seo推广 课程
  • 长治专业做网站刷排名seo软件
  • 地方网站用什么域名如何找推广平台
  • 阿里云网站主体变更怎么做优化推广网站排名
  • 网站制作排名优化太原互联网推广公司
  • wordpress grace8下载seo站外推广
  • 自适应网站设计案例网页制作公司排名
  • 网站建设项目立项登记 表seo技术培训班
  • 做美食的视频网站有哪些百度seo是什么
  • 网站开发vs2015是什么百度推广关键词怎么设置好
  • 最大的推广平台四川seo整站优化