注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

jiwenxu的博客

CODE

 
 
 

日志

 
 

SOCKET编程应了解的事  

2009-02-21 12:07:02|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

网络状况:

多种通信媒介---------有线,无线

不同种类的设备:通用,专用

不同的OS:UNIX,WINDOWS

不同的应用环境:固定,移动

不同业务种类:分时,交互,实时

宝贵的投资和积累:有形,无形

用户业务的延续性:不允许出现大的跌宕起伏

以上各点相互交织,形成了非常复杂的系统应用环境

ISO/OSI七层参考模型:

应用层-------------处理网络应用

表示层-----------数据表示

会话层--------------主机间通信

传输层-------------端到端的连接

网络层----------------寻址和最短路径

数据链路层--------------介质访问(接入)

物理层----------二进制传输

TCP/IP模型

应用层

传输层

网络层

网络接口层

OSI各层所使用的协议:

应用层:远程登录telnet,文件传输ftp,超文本传输http,域名服务DNS,简单邮件传输SMTP,邮局协议pop3

传输层:传输控制TCP,用户数据报udp

TCP-----面向连接的可靠的传输

UDP-----无连接的不可靠的传输

网络层:网际IP,Internet互联网控制报文协议ICMP,Internet组管理协议IGMP

协议端口:

抽象的软件结构(包括一些数据结构和IO缓冲区),应用程序通过系统调用与某端口建立连接后,相应进程发给传输层的数据都通过该端口输出,传输层传给该端口的数据都被相应的进程所接收

16位数字表示:1024以下保留给预定义服务

网络编程中注意主机字节序与网络字节序转换

C/S模式存在的必要性:

一,              建立网络的起因是网络中软硬件资源,运算能力和信息不均等,需要共享,从而资源多的主机提供服务,资源少的客户请求服务这一非对等作用

二,              网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步

Windows sockets是MS的网络程序设计接口,由berkeley sockets扩展而来,以DLL形式提供:提供了一些异步函数,并增加了符合WINDOWS消息驱动特性的网络事件异步选择机制

套接字类型:

流式套接字SOCK_STREAM

提供面向连接,可靠的数据传输服务,数据无差错的,无重复的发送,且按发送顺序接收

数据报式套接字SOCK_DGRAM

提供无连接服务,数据包以独立包形式发送,不提供无错保证,数据可能丢失或重复,并且接收顺序混乱

原始套接字SOCK_RAW

基于TCP(面向连接)的socket编程

服务器端程序:

1,创建套接字socket

2,将套接字绑定到一个本地地址和端口上bind

3,将套接字设为监听模式,准备接收客户请求listen

4,等待客户请求到来:当请求到来后,接受连接请求,返回一个新的对应此次连接的套接字accept

5,用返回的套接字和客户端进行通信send/recv

6,返回,等待另一客户请求

7,关闭套接字closesocket

客户端程序:

创建套接字socket

向服务器发出连接请求connect

和服务器端进行通信send/recv

关闭套接字closesocket

基于UDP(面向无连接)的socket编程

服务器端程序:

1,创建套接字socket

2,将套接字绑定到一个本地地址和端口上bind

3,等待接收数据recvfrom

4, 关闭套接字closesocket

客户端程序:

1,创建套接字socket

2向服务器发送数据sendto

3, 关闭套接字closesocket

  评论这张
 
阅读(47)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018