TCP

Socket编程之closesocket函数

一旦决定要停止通信,就要关闭套接字,释放资源,则需要调用closesocket函数进行其函数介绍如下:函数功能:与socket函数功能相反关闭套接字头文件:#include<winsock2.h>函数原型:intclosesocket(intaID);返回值类型:整型参数说明:aID为接收客户端请求的

TCP的服务端代码流程简述

在讲述了那么多以后我们终于来到了代码阶段的讲解了,先放一张流程图便于大家理解。接着会为大家讲述具体的实现过程。通过上图我们可以看到一个完整的Socket网络通信,是有客户端和服务端两部分代码组成的,即两个程序(你发给我,我接收;我发给你,你接收)组成。

ntohl和ntohs函数:网络序转换到主机序

有主机序转网络序,就有网络序转主机序,分别是ntohl和ntohs函数,接下来为大家讲解这两个函数。1.ntohl函数函数功能:将一个无符号短整型数从网络字节顺序转换成主机字节顺序。这个函数与htons原理相同,不过是htos是主机序到网络序,而ntohs是网络序到主机序。

Socket编程之WSACleanup函数

一旦程序结束需要停止Socket库的使用,需要调用WSACleanup函数,这一步和最开始的WSAStartup是对应的。函数功能用于终止对So:cket字库的使用。库链接:#pragmacomment(lib,"ws2_32.lib")表示链接Ws2_32.lib这个库。

Socket编程之WSAStartup函数

上一节我们介绍了客户端与服务端相互通信的模型图,每一步都有具体的函数实现,但需要明白的是,使用这些函数之前,在Windows系统下,需要先调用WSAStartup函数进行必要的初始化,才可以顺利的进行,而使用WSAStartup函数又需要事先包含对应的头文件winsock2.h及静态库ws2_32.l

Socket服务端完整参考代码

前面讲解了Socket通信中服务端的每一步功能作用及实现,而重点是多个步骤在一起时,上下文函数之间的信息传递需要我们理解,如SOCKADDR_IN的结构体、各个SOCKET描述符等参数,以及在此基础之上改进得到的希望的实际效果(如需要不停的接受消息、发送消息)下面我们将所有步骤串联在一起,

Socket编程之socket函数

如下图所示,是Socket通信的原理图,左侧为服务端,右侧是客户端,可以看到服务端的步骤要多一些,客户端将在后面讲解。本节开始将从左侧服务端第一步开始逐步讲解,本步骤目标为创建一个套接字,其返回值为后面的步骤使用。下面我们开始正式进入Socket通信的第一步,

TCP的客户端代码流程简述

这一章将为大家讲解Socket通信中客户端的实现过程,还是先上图,请大家了解客户端的步骤可以看到,相比服务端,客户端的步骤简单的很多。事实上这种情况比较多,比如一个服务端会有多个客户端连接。通过图片我们可以看到TCP客务端调用的函数依次是socket()、connect()、recv()、send()

Sockaddr_in和Sockaddr的区别

sockaddr和sockaddr_in都是结构体,并且它们的功能都是用来处理网络通信的地址。网络中的地址主要有3个方面的属性:1、地址类型例如是互联网协议第四版(ipv4)和互联网协议第六版(ipv6)。2、IP地址,主要有5类分别是A类:(1.0.0.0-126.0.0.0),

Socket编程之bind函数

在完成第一步创建套接字,分配了一个Socket描述符后,服务端的第二步就是使用在这个描述符用Bind绑定Bind()系统调用的主要用处:1.服务器向系统注册它的众所周知的地址。面向连接和无连接的服务器在接受客户的请求之前都必须做这一步。2.客户可为自己注册一个特定的地址,