- 博客(7)
- 收藏
- 关注
原创 Go学习1: Hello world
package main import ( "fmt" "os" "strings" ) func main() { who := "world!" // 定义变量who if len(os.Args) > 1 { who = strings.Join(os.Args[1:], " ") } fmt.Println("hello", who) // 输出 } Go
2015-06-23 13:26:29 616
原创 Windows 套接字I/O 模型(2) 选择(select)模型
select模型是一个广泛在Winsock中石油的I/O模型。称它为select 模型,是因为它主要是使用select 函数来管理I/O 的。这个模式的设计源于UNIX 系统,目的是允许那些想要避免在套接字调用上阻塞的应用程序有能力管理多个套接字。 select 函数可以确定一个或者多个套接字的状态。如果套接字上没有网络事件发生,便进入等待状态,以便执行同步I/O。函数定义如下。 int
2015-06-10 16:40:56 446
原创 Windows套接字I/O模型(1) 套接字模式
套接字模式简单的决定了操作套接字时,Winsock 函数是如何运转的。Winsock 以两种模式执行I/O 操作:阻塞和非阻塞。在阻塞模式下,执行I/O 的Winsock 调用(如send 和recv)一直到操作完成才返回。在非阻塞模式下,Winsock 函数会立即返回。 1 阻塞模式 套接字创建时,默认工作在阻塞模式下。例如,对recv 函数的调用会使程序进入等待状态,直到接收到数据才返回
2015-06-10 16:23:07 884
原创 网络对时程序实例
网络对时也就是从Internet 上获得准确的时间,以此来校对本地计算机时钟。通过这样一个实例程序,可以初步了解协议和Winsock 函数的具体应用。 1. 时间协议 Time Protocol (RFC-868)是一种非常简单的应用层协议。它返回一个未格式化的32位二进制数字,这个数字描述了从1900 年1 月1 日午夜到现在的秒数。服务器在端口37 监听时间协议请求,以TCP/IP 或者U
2015-06-10 15:53:39 1173 1
原创 WinSock编程流程(2)- UDP
TCP 由于可靠、稳定的特点而被用在大部分场合,但它对系统资源要求比较高。UDP 是一个简单的面向数据报的传输层协议,又叫用户数据报协议。它提供了无连接的、不可靠的数据传输服务。无连接是指它不像TCP 那样在通信前先与对方建立连接以确定对方的状态。不可靠是指它直接按照指定IP 地址和端口号将数据包发出去,如果对方不在线的话数据就可能丢失。 1. UDP编程流程 (1) 服务器端程序设计流程
2015-06-10 14:57:23 3089
原创 Winsock编程流程(1)-TCP/IP
1. 套接字的创建和关闭 使用套接字之前,必须调用socket函数创建一个套接字对象,此函数调用成功将返回套接字句柄。 SOCKET socket( int af, // 用来指定套接示使用的地址格式,WinSock 中只支持AF_INET int type, // 用来指定套接字的类型 int protocol // 配合type 参数使用,用来指定使用的协议类型。可以是IPPROTO_TC
2015-06-10 13:53:24 410
转载 同步通信与异步通信区别
同步通信原理 同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符 采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应5~8位。
2015-06-08 15:38:35 482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人