windows网络编程
来源:http://www.tudoupe.com时间:2022-03-29
Winsock是Windows系统中使用Socket和网络编程接口的网络编程功能。
在共同的Windows平台上 Winsock有两个主要版本, 他有两个不同的版本。他们是Winsock1和Winsock2。您必须引用标题 WINSOCK. H 。如果申请是为了利用Winsock2而设置的,它将使用它。我们必须引用WINSICOCK2.H。还有另外一个 MSWSOCK。其目的是协助扩大Windows系统高性能网络方案。这是我们对2011年印度选举的特别报道的一部分。WSOCK32.LIB,图书馆文件,也需要。使用WINSOCK2.H.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.0WS2_32.LIB是必需的。如果我们使用 MSWSOCK。 H 的 API 扩展,MSWSOCK. Lib 需要 。正确引用了头文件,它也和适当的图书馆档案连在一起您为 WINSOCK 网络应用程序设置了环境 。
一般来说,OSI模式是更广为人知的网络模式。它分为七层,即物理层,数据链路层,网络层,传输层,会话层,表示层以及应用层。TCP/IP模式相当受欢迎。在Windows操作系统中TCP/IP协议模式也用于东道方和网络之间的通信。利用温索克编程也就是说,通信必须利用诸如TCP/IP等适当的议定书进行。

在温索克,提供了TCP/IP协议的合并地址,即袜子体结构,其具体定义可在MSDN找到:

其中:
- Sin-Family的价值必须是AF_INET,它代表家庭,作为TCP/IP家庭。
- 我们知道,TCP/IP协议中的端对端通信是通过IP地址和港口号进行的。
- In_addr 也是一种结构。 它的构造如下:

注:具体应用和注释见MSDN。
本条随后将简要讨论TCP协议的实际执行情况。

在上述流程图中,将讨论实现过程,即以下功能:
1. 合成创建:采用对TCP协议进行预防,必须使用流程合成,因为TCP协议是用字节执行数据传输的。
[cpp] view plain copy
- sockets;
- s=::socert(AF_INET,SOCK_SREAM,0);
其中:
由于地址格式已按TCP/IP协议中规定的地址格式在 af 中定义,最后参数协议类型被指定为 0;
2、绑定地址信息
使用函数绑定() 将地址信息捆绑起来 。 此程序已经完成, 组合和地址信息都具有约束力 。

参照代码:
[cpp] view plain copy
- sockaddr_inaddr;
- addr.sin_family=AF_INET;
- addr.sin_port=htons(80);
- addr.sin_addr.S_un.S_addr=INADDR_ANY;
- ::bind(s,(sockaddr)&addr,sizeod(addr));
3. 作为TCP服务器,它必须始终处于监听状态,听取客户的连接请求,这是通过监听()方法实现的。
4. 这一功能与约束功能的结构相似,因为它发送客户的连接请求。

Sockaddr 将地址指针定义为服务器的地址指针。
五. 服务器接受客户端连接请求。 实现功能类似于接受( ) 、 结构连接( ) 和绑定( ), 但定义的结构指针应该是客户的地址指针 。
最后,本文件介绍了TCP协议执行守则,平台为Visionc+6.0。 实施控制平台方案。
服务器代码:
[cpp] view plain copy
#include <winsock2.h> //包含头文件
#include <stdio.h>
#include <windows.h>
# pragmacomment( lib, "WS2_ 32. lib () // 手机在行动区内的链接 )
Intmain () // 初始主机函数
{
WSADATatadata;//WSADATA 结构物体定义
WORDw = MakeWORD (2,0);/定义的Verion number
字符ztext[] = “欢迎使用” ; / 声明并初始化客户端的字符阵列 。
::WSAStartup(w,&data);//初始化套接字库
SOCKETs, s1;// 连接合成定义以及数据接收和发送合成把手
s= 套接字( AF_ INET, SOCK_ STREAM, 0;// TCP套接字创建)
Sockaddr_inaddr, addr2; // 套件地址地址结构定义
Intn = 大小( addr2) ; // 确定包装的地址结构的大小 。
我不知道你在说什么,Ardr.sin_family=AF_INET;//地址结构初始化
addr.sin_port=htons(75);
addr.sin_addr.S_un.S_addr=INADDR_ANY;
::bind(s,(sockaddr*)&addr,sizeof(addr));//绑定套接字
* 听(s),5;/电话
f 打印 (“ 服务开始” ); // 输出提示数据
while(true)
{
s1=::accept(s,(sockaddr*)&addr2,&n);//接受连接请求
if(s1!=NULL)
{
printf (“%s”已经连接到“int_intoa”(addr2)((sin_address));
向有 *Send(s1, sztext, 大小(sztext), 0) 的客户端发送字符阵列;
}
* 闭口室;// 套接字处理关闭
::closesocket(s1);
* WSACleanup();/Binder图书馆发行
如果符合条件( getchar () / ), 申请将被终止 。
{
返回0;//正常程序结束
}
else
{
* 睡眠(100);/应用睡眠0.001秒。
}
}
}
客户端代码:
[cpp] view plain copy
#include <winsock2.h> //包含头文件
#include <stdio.h>
#include <windows.h>
# pragmacomment( lib, "WS2_ 32. lib () // 手机在行动区内的链接 )
Intmain () // 初始主机函数
{
WSADATatadata;//WSADATA 结构物体定义
WORDw = MakeWORD (2,0);/定义的Verion number
::WSAStartup(w,&data);//初始化套接字库
SOCKETS/ 连接控管定义
charsztext[10]={0};
s= 套接字( AF_ INET, SOCK_ STREAM, 0;// TCP套接字创建)
Sockaddr_ inaddr; // 套件地址地址结构定义
我不知道你在说什么,Ardr.sin_family=AF_INET;//地址结构初始化
addr.sin_port=htons(75);
addr.sin_addr.S_un.S_addr=inet_addr(“127.0.0.1”);
printf (“ 客户已启动 ” ); // 输出提示数据
::connect(s,(sockaddr*)&addr,sizeof(addr));
::recv(s,sztext,sizeof(sztext),0);
printf("%s ",sztext);
* 闭口室;// 套接字处理关闭
* WSACleanup();/Binder图书馆发行
如果符合条件( getchar () / ), 申请将被终止 。
{
返回0;//正常程序结束
}
else
{
* 睡眠(100);/睡眠方案
}
}
相关新闻
- 2022-08-04 WPF的由来
- 2022-08-04 Win11勒索软件防护怎么打开?Win11安
- 2022-08-04 Windows系统jdk的配置
- 2022-08-04 Windows10 OneNote怎么重新登录?如何重
- 2022-08-04 超好用的 Windows 效率工具推荐
- 2022-08-04 Windows如何在CMD或PowerShell中配置代理
- 2022-08-04 powershell和cmd对比
- 2022-08-04 【QT】Windows下QT下载安装
- 2022-08-04 windows下 C++ 实现类属性的get和set方
- 2022-08-04 Win11快速助手在哪里?Win11打开快速
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
