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

做网站推广需要做什么做效果图网站

做网站推广需要做什么,做效果图网站,wordpress需要认证,移动端开发平台一、检查步骤 使用socket函数创建socket_fd套接字。使用sockaddr_in结构体配置协议和端口号。使用bind函数尝试与端口进行绑定,成功返回0表示未被占用,失败返回-1表示已被占用。 二、步骤详解 2.1 socket函数 socket 函数是用于创建套接字的函数&…

一、检查步骤

  1. 使用socket函数创建socket_fd套接字。
  2. 使用sockaddr_in结构体配置协议和端口号。
  3. 使用bind函数尝试与端口进行绑定,成功返回0表示未被占用,失败返回-1表示已被占用。

二、步骤详解

2.1 socket函数

socket 函数是用于创建套接字的函数,其参数和返回值如下:

int socket(int domain, int type, int protocol);
输入参数
  1. domain(地址家族):指定套接字的地址家族,它表示了网络层协议的类型,通常是下列之一:
    1. AF_INET:IPv4 地址家族。
    2. AF_INET6:IPv6 地址家族。
  2. type(套接字类型):指定套接字的类型,它表示了传输层协议的类型,通常是下列之一:
    1. SOCK_STREAM:流套接字,用于 TCP 协议
    2. SOCK_DGRAM:数据报套接字,用于 UDP 协议。
  3. protocol(协议类型):通常设置为0,表示自动选择与套接字类型相匹配的默认协议。在大多数情况下,你不需要指定协议,因为操作系统会根据地址家族和套接字类型自动选择合适的协议。
返回值
  1. 如果 socket 函数成功返回值为socket_fd套接字描述符。
  2. 如果 socket 函数失败,它将返回-1,也就是INVALID_SOCKET。

2.2 配置协议和端口号

sockaddr_in结构体在winsock2.h(windows)或sys/socket.h(linux)头文件下。其结构如下:

// sin为socket in的缩写
struct sockaddr_in {short sin_family;          // 地址家族,通常为 AF_INETunsigned short sin_port;   // 端口号,以网络字节序表示struct in_addr sin_addr;    // IP地址char sin_zero[8];           // 预留字段,通常置零
};

具体配置代码如下:

sockaddr_in serverAddress;
// 将serverAddress内存全部写0
ZeroMemory(&serverAddress,sizeof(serverAddress));
// AF_INET为ipv4,AF_INET6为ipv6
serverAddress.sin_family = AF_INET;
// htons是host to network short的缩写,表示将主机序以short类型转换为的网络序,并以二进制形式存储在sin_port里
serverAddress.sin_port = htons(port);
// INADDR_ANY表示支持任意地址
serverAddress.sin_addr.s_addr = INADDR_ANY;

2.3 bind函数

bind 函数用于将一个套接字与一个本地地址(通常是IP地址和端口号)绑定在一起,以便监听该地址上的连接或接收数据。bind 函数的参数和返回值如下:

int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
输入参数
  1. sockfd:是要绑定的套接字的文件描述符(在Unix/Linux环境中)或套接字句柄(在Windows环境中)。
  2. addr:是一个指向 struct sockaddr 类型的指针,用于指定要绑定的本地地址信息。通常需要将一个sockaddr_in类型的指针转换为sockaddr类型的指针。
  3. addrlen:是 addr 结构的长度,通常可以使用 sizeof 运算符获取。
返回值
  1. 如果 bind 函数成功绑定套接字到指定的地址,它将返回0。
  2. 如果 bind 函数失败,它将返回-1,表示绑定失败。失败的原因可能是指定的地址已经被占用或其他错误。

三、CODE

其中port需要修改为想要检测的端口号,也可以将代码改写为根据argv参数检测。

#include <iostream>
#include <winsock2.h> // Windows套接字编程头文件
// #include <sys/socket.h> // Unix/Linux套接字编程头文件
#include <Windows.h>int main() {// WSAStartup用于初始化 Winsock 库,它在进行套接字编程之前需要调用。// MAKEWORD(2,2)表示请求2.2版本// wsaData用于接收WinSock初始化的信息WSADATA wsaData;int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);if (iResult != NO_ERROR) {wprintf(L"WSAStartup failed with error: %ld\n", iResult);return 1;}// 上面代码只有windows需要加,linux不需要int port = 80; // 要检查的端口号// 创建套接字SOCKET sock = socket(AF_INET, SOCK_STREAM, 0); // For Windows// int sock = socket(AF_INET, SOCK_STREAM, 0); // For Unix/Linuxif (sock == INVALID_SOCKET) {std::cerr << "Error creating socket" << std::endl;return 1;}// 设置服务器地址信息sockaddr_in serverAddress;// 将serverAddress内存全部写0ZeroMemory(&serverAddress,sizeof(serverAddress));serverAddress.sin_family = AF_INET;serverAddress.sin_port = htons(port);serverAddress.sin_addr.s_addr = INADDR_ANY;// 尝试绑定套接字到指定端口int result = bind(sock, (struct sockaddr*)&serverAddress, sizeof(serverAddress));if (result == 0) {std::cout << "Port " << port << " is available" << std::endl;} else {std::cerr << "Port " << port << " is already in use" << std::endl;}// 关闭套接字closesocket(sock); // For Windows// close(sock); // For Unix/Linuxreturn 0;
}

四、运行结果

  1. 使用以下命令行编译cpp代码,其中checkPort.cpp为源文件,checkPort为输出可执行文件,-lws2_32用于链接Windows的Winsock2库。
    g++ .\checkPort.cpp -o checkPort -lws2_32
  2. 以下命令行运行可执行文件
    .\checkPort.exe
  3. 如果端口未被占用,则会输出以下内容。
    在这里插入图片描述
  4. 如果端口已被占用,则会输出以下内容。
    在这里插入图片描述
  5. 如果windows下输出以下内容,一般来说是因为WSAStartup没有配置。
    在这里插入图片描述
http://www.yayakq.cn/news/889264/

相关文章:

  • 浙江省网站备案注销申请表上海速恒网络科技有限公司
  • 山东省建设厅官方网站怎么样用别的域名给网站做竞价
  • 制作网站的公司哪家比较好网页制作工具可分为哪两大类
  • 免费做流程图的网站个人想做外贸哪个平台比较好
  • 北京手机站建站黄页88企业名录
  • 威海市高区建设局网站谷歌官方seo入门指南
  • 公司制作网站需要什么知识做网站对服务器什么要求高
  • 做网站建设一条龙全包wordpress和卡密平台
  • 网站验收确认韶关建网站
  • 网站建立的企业创建网站是怎么赚钱
  • 洛宁网站建设网站seo完整的优化方案
  • 网页和网站有什么分别百度网络营销推广
  • 建设网站总结做外贸建网站多少钱
  • 为企网站虚拟主机免费空间
  • 模板手机网站建设价格明细表青岛英文网站建设服务公司
  • 新乡建设招标投标网站郑州app开发外包
  • 高端定制网站速度深圳大型互联网公司
  • 专门做悬疑推理小说的阅读网站icp备案需要什么材料
  • 网站服务器怎么迁移pc版网站生成App
  • 杭州自助建站软件给公司做门户网站
  • 自己的网站在哪里找建设美食电子商务网站
  • 电影宣传网站开发设计做刷网站
  • 觉得自己做的网站土怎么办企业网站结构图
  • 自己做网站主机建设局是干嘛的
  • 网站建设 中企动力 东莞怎么联系地推公司
  • 更换网站后台管理系统网站开发资格证书
  • 烟台企业网站制作公司即时设计
  • 西安网站建设优化服务公司做视频网站把视频放在哪里找
  • 网站设计与程序方向专业一般通过中间人转账是否违法
  • 建设网站用户名是什么原因网站建设属于什么经营类型