`
chanshui
  • 浏览: 82761 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
1、select 模型 int select( int nfds,    //忽略,兼容Berkeley套接字 fd_set* readfds,   //可读套接字集合 fd_set* writefds,   //可写套接字集合 fd_set* exceptfds,   //指向套接字集合,检查错误 const struct timeval* timeout //超时时间,NULL为无限等待 typedef struct fd_set { u_int fd_count;    //数组大小 SOCKET fd_array[FD_SETSIZE]; //socket数组 } 预定义的4个操作fd ...
windows下面socket非组赛其实也就是winsock api的调用而已,比如我用的delphi: var   addr  : TSockAddr;   sock  : TSocket;   sock := socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );   addr.sin_family := AF_INET;   addr.sin_port := htons(5678);   addr.sin_addr.S_addr := htonl(INADDR_ANY);   bind( m_sock, @addr, sizeof(SOCKADDR) ...
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等 ...
简单点说: 阻塞就是干不完不准回来,   非组赛就是你先干,我现看看有其他事没有,完了告诉我一声 我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输( ...
在互联网相当普及的今天,在互联网上聊天对很多“网虫”来说已经是家常便饭了。聊天室程序可以说是网上最简单的多点通信程序。聊天室的实现方法有很多,但都是利用所谓的“多用户空间”来对信息进行交换,具有典型的多路 I/O的架构。一个简单的聊天室, 从程序员的观点来看就是在多个I/O端点之间实现多对多的通信。其架构如图一所示。这样的实现在用户的眼里就是聊天室内任何一个人输入一段字符之后,其他用户都可以得到这一句话。这种“多用户空间”的架构在其他多点通信程序中应用的非常广泛,其核心就是多路I/O通信。多路I/O通信又被称为I/O多路复用(I/OMultiplexing)一般被使用在以下的场合: 客户程序需 ...
windows的socket在创建后,默认是阻塞调用的,也就是说函数recv,recvfrom,send,sendto等函数都是阻塞的;那么我们如何将他们设置成非阻塞调用呢?我们可以通过windows为我们提供的ioctlsocket 函数实现;先给出一个例子: BOOL LoadSocke ...
对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手。许多概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等,初学者往往迷惑不清,只知其所以而不知起所以然。 同步方式指的是发送方不等接收方响应,便接着发下个数据包的通信方式;而异步指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式。 阻塞套接字是指执行此套接字的网络调用时,直到成功才返回,否则一直阻塞在此网络调用上,比如调用recv()函数读取网络缓冲区中的数据,如果没有数据到达,将一直挂在recv()这个函数调用上,直到读到一些数据,此函数调用才返回;而非阻 ...
同步:函数没有执行完不返回,线程被挂起 阻塞:没有收完数据函数不返回,线程也被挂起 异步:函数立即返回,通过事件或是信号通知调用者 非阻塞:函数立即返回,通过select通知调用者 这样看来异步和非阻塞有什么区 ...
← Pimp-my-Pumpkin! Google Collections → Getting Android SDK working on Ubuntu 64 October 21st, 2009 by Johan Haleby — Android Johan Haleby Today I was trying to setup the Android SDK (version 1.6_r1) on the 64 bit version of Ubuntu 9.04 (Jaunty Jackalope). After having installed the ADT Eclipse p ...
终于试出来了,是我这环境没有配置对,环境如下: 1、 服务器与客户端必须在同一个域名下。 2、 WEB.CONFIG文件中的身份验证方式,使用Windows身份验证; 3、 IIS的网站属性的身份验证方式:取消匿名身份验证,只保留Windows混合身份验证。 4、 最好使用一个独立的应用程序池。 使用User.Identity.Name 具体代码如下: C# code     string domainAndName = Page.User.Identity.Name;//读取域登录用户名,格式为Domainname\username (域名名称\用户名称)               ...
解决方案:linux 下将tomcat的server.xml的端口改为80后以tomcat身份无法启动tomcat! 在redhat上启动tomcat(将server.xml中的端口改为80) su - tomcat -c "$CATALINA_HOME/bin/startup.sh" 后出现:Catalina.start: LifecycleException: null.open: java.net.BindException: Permission denied:80 这是因为只有root用户才可访问1024以下的端口。 解决方法: 重将serve ...
Kerberos协议: Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。 条件 先来看看Kerberos协议的前提条件: 如下图所示,Client与KDC, KDC与Service 在协议工作前已经有了各自的共享密钥,并且由于协议中的消息无法穿透防火墙,这些条件就限制了Kerberos协议往往用于一个组织 ...
一、超文本传输协议及HTTP包     HTTP协议用于在Internet上发送和接收消息。HTTP协议是一种请求-应答式的协议——客户端发送一个请求,服务器返回该请求的应答,所有的请求与应答都是HTTP包。HTTP协议使用可靠的TCP连接,默认端口是80。HTTP的第一个版本是HTTP/0.9,后来发展到了HTTP/1.0,现在最新的版本是HTTP/1.1。HTTP/1.1由RFC 2616 定义。     在HTTP中,Client/Server之间的会话总是由客户端通过建立连接和发送HTTP请求包初始化,服务器不会主动联系客户端或要求与客户端建立连接。浏览器和服务器都可以随时中断连接,例如 ...
写两个程序,一个是主程序;一个是升级程序;所有升级任务都由升级程序完成。   1.启动升级程序,升级程序连接到网站,下载新的主程序(当然还包括支持的库文件、XML配置文档等)到临时文件夹;   2.升级程序获取服务器端XML配置文件中新版本程序的更新日期或版本号或文件大小;    3.升级程序获取原有客户端应用程序的最近一次更新日期或版本号或文件大小,两者进行比较;如果发现升级程序的日期大于原有程序的最新日期,则提示用户 是否升级;或者是采用将现有版本与最新版本作比较,发现最新的则提示用户是否升级;也有人用其它属性如文件大小进行比较,发现升级程序的文件大小大于旧版 本的程序的大小则提 ...
下载C++写的liveupdate
Global site tag (gtag.js) - Google Analytics