Winsock编程框架

C++开发基础之网络编程WinSock库使用详解TCP/UDP Socket开发 Winsock提供了一组函数和数据结构,这些函数和数据结构可以让开发人员创建和管理套接字(Socket),并通过套接字与其他计算机进行通信。Winsock提供了一些基本的套接字函数,如socket()、bind()、connect()、send()、recv()等,这些函数实现了套接字的创建、绑定、连接、发送数据和接收数据等操作。一旦有客户端连接,就会创建一个新的套接字来处理客户端请求,然后通过该套接字与客户端进行通信。函数接受客户端的连接请求,并返回一个新的socket文件描述符,用于后续与客户端通信。 阅读详情

 


  Microsoft的Windows Sockets API是Windows下的网络应用程序接口,为了适用于
Windows下的消息机制和异步的I/O选择操作,Windows Sockets API在功能上扩充了将近
20个函数,其中扩充的部分均冠以前缀WSA(Windows Sockets Asynchronous),如
WSAStartup、WSAClean等,充分体现了Widnows的优越性。此外,Windows Sockets API有
16位版和32位版两种,16位版是单进程的,32位版则提供了多线程下的安全保护。

  Microsoft Visual Basic提供了用于Windows Sockets编程的可用控件——Winsock控
件。该控件为用户提供了访问TCP和UDP网络的极其方便的途径。并且适用于Microsoft 
Access、Visual Basic、Visual C++和Visual FoxPro等多种可视化环境。通过Winsock
控件编制C/S程序,程序员无须了解TCP或低级Winsock APIs调用实现的细节,如用户无
须考虑网络字节顺序与本机字接顺序便可直接进行数据的传送。用该控件实现网间进程通信
极其方便。

  在TCP应用中,为了建立一个网络连接实例(Instance)的服务器端,只需设置本地服
务端口号,然后服务器调用方法Listen进入阻塞状态,等待来自客户的连接请求。与此对
应的客户端不但要将Winsock的属性RemoteHost置为服务器的名称(IP地址或网络代号),
还应设置服务器所监听的相应服务的端口号(RemotePort),如FTP服务在21号端口,HTTP
在81号端口等。然后调用方法Winsock.Connect向服务器发出请求。服务器接收到客户请
求时,事件ConnectionRequest将被触发。如服务器愿意提供服务,则可调用Accept方法
接受连接。

  一旦连接建立,两端均可使用SendData或GetData进行数据的发送或接收。事件
DataArrival将在另一端数据准备就绪时被触发。

  UDP协议的实现与TCP不同的是,调用Sockets的两端无需建立连接便可进行数据的传
输。因此,一个UDP应用可以同时担任服务器或客户的角色。

  以下程序代码为Visual Basic Windows Sockets编程的基本框架。 

   ’服务器方

   Private Sub Command1.Click()

   ’设置本地服务端口号

   Winsock1.localport=2048

   

’服务器进入监听状态

   Winsock1.listen 

   End Sub 



  Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)

  ’收到客户连接请求

  ’检查Socket状态

  If Winsock1.State <> sckClosed Then Winsock1.Close

  ’接受客户请求

  Winsock1.Accept requestID

  End Sub

   

   Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

   ’对方数据已准备好

   ’可用GetData()/SendData()接收/发送数据

   ’处理客户数据

   ……

   End Sub

   

   Private Sub Form_Unload(Cancel As Integer)

   Winsock1.Close

   End Sub

   

   ’客户方

   Private Sub Command1.Click()

   ’设置服务器网络名

   Winsock1.RemoteHost=“193.168.1.40”

   

’设置服务器相应服务端口号

Winsock1.RemotePort=2048

   

  ’向服务器发出连接请求

  Winsock1.Connect

  End Sub 

   

  Private Sub Winsock1_Connect()

  ’服务器响应连接

  ’可以进行GetData()/SendData()进行数据传输

  ……

  End Sub 

   

  Private Sub Form1.Unload()

   Winsock1.Close

  End Sub 

   

  该段程序演示了用Visual Basic建立TCP连接的基本过程。因本文重在讲解Sockets
编程,故文中未涉及VB自己封装的故障处理函数Winsock1.Erroe(),读者可自行编制。以
上程序段可作为一般TCP应用的基本框架加以扩展使用。

  Microsoft Visual C++实现过程与前述的VB实现类同。具体实例可见Microsoft 
Visual C++ Samples中的chatsrv与chater程序。

  随着Internet的逐步兴起,Sockets编程必将成为流行的网络编程接口之一。也许您
会发问:ISO的OSI模型又是何等地位呢?笔者的观点是:ISO的OSI模型必将成为网络应
用的统一界面,Sockets接口的广泛应用则为OSI模型开拓了更广泛的应用前景!
国产麒麟系统PXE安装-UEFI引导 注意: 适用uefi引导 适用x86_64架构 一键部署脚本扣我 1.上传ISO到PXE服务器,拷贝ISO文件 # mkdir /kylin_iso # mount -o loop Kylin-Server-10-SP1-Release-Build04-20200711-x86_64.iso /kylin_iso/ 2.配置http,获取安装源 # yum -y install httpd # mkdir /var/www/html/{ks,kylin} # 注意一定是"/kylin_iso/ 阅读详情

相关推荐

25、压电泵致动器变形计算与测量及转弯腔射流特性的有限元分析

本文围绕压电泵致动器的变形计算与测量以及转弯腔射流特性的有限元分析展开研究。通过建立有限元模型和抛物线拟合方法,对压电泵致动器的位移和变形体积进行了详细计算,并探讨了其对传感器性能的影响。同时,利用ANSYS软件对转弯腔在不同角速率输入下的射流特性进行了仿真分析,揭示了流场分布随角速率变化的规律。研究成果为压电流体角速率传感器的设计优化提供了理论依据和技术支持。

ooo22的博客 108

Windows下的网络编程Winsock

相比于基础,网络编程就要复杂一些,但其实也有固定格式,记住即可。

森明帮大于黑虎帮的博客 6882

深入WinSock网络编程_源码剖析

本文还有配套的精品资源,点击获取 简介:本资源深入介绍了WinSock,即Windows Sockets API接口,它是Windows系统中网络通信的标准接口。资源中包含了使用WinSock进行网络编程的关键知识点,如套接字创建、地址结构定义、连接建立、监听与接受连接、数据传输及错误处理等。通过源码示例,学习者可以理解TCP/IP网络应用程序的构建,并掌握多线程编程与异步...

weixin_42587866的博客 1495

WinSock 编程:Windows 网络编程的基础

WinSock(Windows Sockets)是 Microsoft Windows 操作系统中用于网络编程的一套 API(应用程序编程接口)。它提供了一组函数库,允许程序员在 Windows 平台上开发网络应用程序,实现网络通信和数据传输。WinSock 抽象了底层网络协议和硬件细节,为程序员提供了一套统一的接口,使他们能够更容易地实现网络功能。WinSock 广泛应用于各种 Windows 网络应用程序中,包括网页浏览器、即时通讯软件、网络游戏等。

JAZJD的博客 2445

[笔记] Microsoft Windows网络编程《一》WinSock简介

本章专门讲解编写成功的 Winsock 用程序的基木方法。Winsock 是一种标准 API(Application Programming Interface,应用程序编程接口),要用于网络中的数据通信,它允许两个或者多个应开程序(或进程)在同一台机器上或通过网络相互通信。Winsock 是一种网络编程接口,而不是协议。使用 Winsock 编程接口,应用程序可通过通网络协议如。

二次元怪兽的博客 3448

Winsock网络编程

Winsock编程-百度百科

qq_42697866的博客 1386

【杂谈】用Winsock编写服务端和客户端 (C++)

用C++实现简易的服务端和客户端

Tsang的博客 488

winsock编程框架

typedef struct in_addr {   union {     struct {       u_char s_b1,s_b2,s_b3,s_b4;     } S_un_b;     struct {       u_short s_w1,s_w2;     } S_un_w;     u_long S_addr;   } S_un; } IN_ADDR,

wu18372504010的博客 623

Winsock编程框架 (转)

Winsock编程框架 (转)[@more@]  microsoft的windowsSocketsapi是Windows下的网络应用程序接口,为了适用于Windows下的消息机制和异步的I/O选择操作,WindowsSo...

csd3176的博客 142

【通信协议及编码】实验1:阻塞、非阻塞和异步模式套接字客户机与服务器程序

通信协议及编码实验:阻塞、非阻塞和异步模式套接字客户机与服务器程序

qq_45614178的博客 508

什么是Winsock

什么是Winsock    Winsock是Windows下的网络编程接口,它是由Unix下的BSD Socket发展而来,是一个与网络协议无关的编程接口。构建编程环境    Winsock在常见的Windows平台上有两个主要的版本,即Winsock1和Winsock2。编写与Winsock1兼容的程序你需要引用头文件WINSOCK.H,如果编写使用Winsock2的程序,则需要引用

delphi_dcs的专栏 1750

Winsock

WinSockWinsock初始化、反初始化错误检查和处理使用IP协议创建基本的Winsock调用来建立通信IPv4寻址字节排序创建套接字面向连接的通信在Winsock中,建立通信的步骤:服务器:客户机:套接字状态 Winsock 编译采用了WINSOCK.H的应用程序时,需要链接到WS2_32.LIB库 使用WINSOCK.H时,需要链接到WSOCK32.LIB 使用MSWSOCK.H时,需要...

qq_36308972的博客 4258

winsockwinsock2冲突

<br />在初学Windows网络编程时,曾经遇到过两类编译错误(VC6的Build窗口哗哗的显示了102个Errors),都是些类型未定义或者重复定义问题,让我感到很郁闷。这两种错误情况下的第一条错误信息分别为:<br />错误情形1:mswsock.h(69) : error C2065: 'SOCKET' : undeclared identifier<br />错误情形2:winsock2.h(99) : error C2011: 'fd_set' : 'struct' type redefini

麦田守望者 5588

Winsock编程入门--1.初始化Winsock

什么是Winsock Winsock是Windows下的网络编程接口,它是由Unix下的BSD Socket发展而来,是一个与网络协议无关的编程接口。 构建编程环境 Winsock在常见的Windows平台上有两个主要的版本,即Winsock1和Winsock2。编写与Winsock1兼容的程序你需要引用头文件WINSOCK.H,如果编写使用Winsock2的程序,则需要...

weixin_30648963的博客 259

Winsock编程

socket(int af,int type,参数说明afsocket 使用的地址格式type指定套接字的类型protocol指定使用的协议类型套接字类型使用的值套接字类型协议字段说明流式套接字使用TCP提供有连接的可靠的传输SOCK DGRAM数据报套接字使用UDP提供无连接的不可靠的传输SOCK RAW原始套接字不使用某种特定的协议去封装它,而是由程序自行处理数据报以及协议首部关闭套接字SOCKET s //函数唯一的参数就是要关闭的套接字句柄。

qq_73006826的博客 1099

QT学习之旅 - Winsock入门

QT的winsock

yasinawolaopo的博客 1319

Winsock网络编程快速入门

一、基本知识   1、Winsock,一种标准API,一种网络编程接口,用于两个或多个应用程序(或进程)之间通过网络进行数据通信。具有两个版本: Winsock 1: Windows CE平台支持。 头文件:WinSock.h 库:wsock32.lib   Winsock 2: 部分平台如Windows CE貌似不支持。通过前缀WSA可以区别于Winsock 1版本。个别函数如

zhao_yin的记事本 4303

windows编程--网络编程学习--winsock编程(2)

Winsock下TCP实现过程

我只是一个单纯的2的博客 1万+

Winsock编程流程

本文参考了《Window程序设计》加些自己的理解,写下本文以便加深对winsock的理解。 Winsock编程一般步骤是固定的: 1.Winsock库的装入,初始化和释放。 2.套接字的创建和关闭。 3.绑定套接字到指定IP地址和端口号。 4.设置套接字进入监听状态。 5.接收连接请求。 6.收发数据。 1.Winsock库的装入、初始化和释放: 所有的WinSock

hopyGreat的博客 1181

公开整理-各省年度排放量数据集.xlsx

公开整理-各省年度排放量数据集.xlsx

上一篇: Win32ASM原理
下一篇: 用VB开发IE
firetoucher
博客等级 码龄25年 60粉丝 85原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值