windows 套接编程

网络在我们生活中日益频繁。网络化已经成为了一个社会发展的趋势。winsocket 是一种常用的网络编程方法。

首先我们来讲讲计算机网络的基本知识。首先是IP地址,在网络中每个主机都有一个IP地址。(一个主机可以有多个IP,但是在每个网络里面每个主机都必须有唯一的一个IP,比如说你的电脑有两个IP一个为192.168.1.34 另一个为192.168.2.34   这说明了这个主机在两个点1网段里。也在点2网段里面   1网段上计算机可以找192.168.1.34,2网段上的计算机是找不到192.168.1.34的)网络相当于一个社群,你相当于主机,你在A社群叫xx,在b社群里面你可能叫yy。相当于你在一个社群中有了一个身份证了,别人可以通过这个"身份证"来找到你。然后在来看看协议。所谓的协议都是一写通信规则。其实我的汉语,英语都是协议,他们用来处理人与人交流的协议,而TCP/IP,UDP/IP都是用来在计算机在网络上的交流的协议。端口的概念。当主机A通过网络把数据发到B主机上,B主机里面有很多个进程,到底是哪个进程在接受数据呢?所以我们要给每个进程分配一个端口号。端口号
对应进程。tcp/ip编程对应着客户端和服务器端。服务器端提供服务。客户端请求服务。所以服务端是一个被动的过程。客户端是一个主动的过程。服务端程序的流程是这样。初始网络协议WSAStartup,建立(socket)socket ,绑定(bind)socket,绑定的时候用的本机的sockaddr(这个记录的是本机的IP和端口号),其实是将socket绑定到本机的IP和端口上,监听(listen)是将socket设置为监听模式,用于监听网络。接受(accept)当网络上有客户端要求服务的时候,接受客户的请求,返回一个新建本次服务的套接字socketconnet,并用一个sockaddr
变量记录下客户的IP和端口。然后是收发数据。接收数据时recv,该函数的参数中套接字的是本次连接建立的socketconnet。发送数据 是send。该函数的一个参数是本次连接的套接字socketconnet。最后关闭socket。

对于客户端来说:客户端是一个主动的过程。他的流程是 1建立socket和SOCKADDR_IN svr。 svr 用来记录服务的IP和端口号。2想服务器发送连接请求,客户端是不需要绑定本机的,他是建立一个连接,使用connet函数,就想你去银行办理业务,你不要常年呆在银行,只要你要办理业务的时候去一次就行了。你这去一次就是一次连接请求。3连接完成之后,我们就可以建立联系了  收发数据。最后关闭socket。

UDP协议传输的时候,是不建立连接的,所以的可靠性是要低于TCP的。UDP协议的服务器端程序流程是这样的:1建立socket和本地SOCKADDR SVR;2绑定(bind)将socket绑定到本地的ip和端口上。3建立客户端的sockaddr client用来记录客户端数据,接收数据。recvfrom 。客户端的流程 是建立socket和服务端的sockaddr,发送数据,接受数据。

不管是什么协议。1 服务器都是要将本机的socketaddr 和socket绑定。

2收发数据的时候都是要知道对方的sockaddr。客户端都是通过事先定义的。而服务端是不知道什么样客户要申请服务的,所以服务器端都是在交互得到客户端的sockaddr。tcp 服务器端是接受连接的时候,记录下这次连接的socketconnet,而udp 没有建立连接,是在接受的时候(recvfrom)。

3 udp实时性好,可靠性差,tcp实时性差,可靠性好。

windows 套接编程

时间: 2024-08-24 10:01:53

windows 套接编程的相关文章

windows套接字相关函数

windows套接字相关函数 作者:vpoet mail:[email protected] 我们学习TCP/IP协议无非是利用这些协议进行通信开发,然而如果让我们自己来直接根据协议规则和协议格式来 进行网络开发无疑是一件十分痛苦的事情,显然为了减轻程序员的开发负担,windows提供给我们一套网络开发 的API,这个API族就叫做套接字库. 但是套接字和TCP/IP协议到底是什么关系呢. 我们暂且可以这样理解,如图: 那么OK,理解不了我们也暂且这样理解吧. 接下来我们讲讲使用套接字编程主要用

初探WINDOWS下IME编程

初探WINDOWS下IME编程作者:广东南海市昭信科技有限公司-李建国 大家知道,DELPHI许多控件有IME属性.这么好用的东西VC可没自带,怎么办呢?其实,可通过注册表,用API实现.下面说一下本人对IME的研究结果,并提供示例工程供大家参考: 下载示例工程 10.6K 本文示例程序运行结果如上图1.将用到的API RegOpenKey:打开注册表一键RegQueryValue:查询一键值RegQueryValueEx:同上RegCloseKey:关闭打开的键 LoadKeyboardLay

【转】Windows的多线程编程,C/C++

在Windows的多线程编程中,创建线程的函数主要有CreateThread和_beginthread(及_beginthreadex). CreateThread 和 ExitThread    使用API函数CreateThread创建线程时,其中的线程函数原型:  DWORD WINAPI ThreadProc(LPVOID lpParameter);在线程函数返回后,其返回值用作调用ExitThread函数的参数(由系统隐式调用).可以使用GetExitCodeThread函数获得该线程

windows注册表编程

Windows注册表 1 注册表的作用 注册表在windows中非常重要,它是一个庞大的数据库,里面保存了大量的系统信息,例如保存软件硬件的配置信息,计算机系统的设置,性能记录. 如果注册表遭到破坏,就可能对整个系统造成影响,甚至系统瘫痪. 2 注册表的结构 注册表是树状的层次结构:主键-->子键-->子键-->子键-->---->键值.其中每一个键都有键值,键值由3部分构成:值名,值类型,值本身值.有点像int x =0的节奏哈. 每个键都有一个默认的值,所以的默认值就是说

unix网络编程之基本套接口编程

第一章  套接口编程简介 IPv4套接口地址:"网际套接口地址结构" 通用套接口地址结构: 套接口函数被定义为采用指向通用套接口地址结构的指针,这要求对这些函数的任何调用都必须将指向特定于协议的套接口地址结构的指针类型转换成指向通用套接口地址结构的指针: 套接口地址结构的比较: 值-结果参数: 当把套接口地址结构传递给套接口函数时,总是通过指针来传递的,即传递的是一个指向结构的指针. 1, 从进程到内核传递套接口地址结构有3个函数:bind.connect.sendto,这3个函数的一

值得收藏的TCP套接口编程文章

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由jackieluo发表于云+社区专栏 TCP客户端-服务器典型事件 下图是TCP客户端与服务器之间交互的一系列典型事件时间表: 首先启动服务器,等待客户端连接 启动客户端,连接到服务器 客户端发送一个请求给服务器,服务器处理请求,响应客户端 循环步骤3 客户端给服务器发一个文件结束符,关闭客户端连接 服务器也关闭连接 基本TCP客户-服务器程序的套接口函数 套接口编程基本函数 socket 函数 为了执行网络I/O,一个进程(无论

windows socket网络编程基础知识

下面介绍网络7层协议在WINDOWS的实现: 7层协议 WIN系统 ________________________________________ 7 应用层 7 应用程序 ________________________________________________ 6 表示层 6 WINSOCK API(DLL) ___________________________________________ 5 会话层 5 SPI(DLL) ___________________________

Windows下多线程编程(一)

前言 熟练掌握Windows下的多线程编程,能够让我们编写出更规范多线程代码,避免不要的异常.Windows下的多线程编程非常复杂,但是了解一些常用的特性,已经能够满足我们普通多线程对性能及其他要求. 进程与线程 1. 进程的概念 进程就是正在运行的程序.主要包括两部分: • 一个是操作系统用来管理进程的内核对象.内核对象也是系统用来存放关于进程的统计信息的地方. • 另一个是地址空间,它包含所有可执行模块或 D L L模块的代码和数据.它还包含动态内 2. 线程的概念 线程就是描述进程的一条执

Windows下Hadoop编程环境配置指南

刘勇    Email: [email protected] 本博客记录作者在工作与研究中所经历的点滴,一方面给自己的工作与生活留下印记,另一方面若是能对大家有所帮助,则幸甚至哉矣! 简介 鉴于最近在研究Hadoop编程时,为考虑编程的方便,在Windows本地编译源程序,然后直接访问Hadoop集群,这样给广大编程人员提供了极大的便利.在这个过程中积累了一些实际经验,并针对在该过程中(初级阶段)可能会遇到的问题,提供一些解决方案,希望对大家有所帮助. 环境介绍 Hadoop 集群:hadoop