Chinaunix首页 | 论坛 | 博客
  • 博客访问: 484678
  • 博文数量: 112
  • 博客积分: 5696
  • 博客等级: 大校
  • 技术积分: 1720
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-17 09:58
文章分类

全部博文(112)

文章存档

2011年(22)

2010年(28)

2009年(21)

2008年(41)

分类:

2010-06-22 17:52:08

同步套接字通信 

Socket支持下的网上点对点的通信 

服务端实现监听连接,客户端实现发送连接请求,建立连接后进行发送和接收数据的功能 

服务器端建立一个socket,设置好本机的ip和监听的端口与socket进行绑定,开始监听连接请求,当接收到连接请求后,发送确认,同客户端建立连接,开始与客户端进行通信。 

客户端建立一个socket,设置好服务器端的IP和提供服务的端口,发出连接请求,接收到服务的确认后,尽力连接,开始与服务器进行通信。 

服务器端和客户端的连接及它们之间的数据传送均采用同步方式。 

Socket 

Socket是tcp\ip网络协议接口。内部定义了许多的函数和例程。可以看成是网络通信的一个端点。在网络通信中需要两个主机或两个进程。通过网络传递数据,程序在网络对话的每一端需要一个socket。 

       Tcp/IP传输层使用协议端口将数据传送给一个主机的特定应用程序,协议端口是一个应用程序的进程地址。传输层模块的网络软件模块要于另一个程序通信,它将使用协议端口,socket是运行在传输层的api,使用socket建立连接发送数据要指定一个端口给它。 

Socket: 

Stream Socket流套接字 Socket提供双向、有序、无重复的数据流服务,出溜大量的网络数据。 

Dgram socket数据包套接字 支持双向数据流,不保证传输的可靠性、有序、无重复。 

Row socket 原始套接字 访问底层协议 

建立socket 用C# 

命名空间:using System.Net;using System.Net.Socket; 

构造新的socket对象:socket原型: 

Public socket (AddressFamily addressFamily,SocketType sockettype,ProtocolType protocolType) 

AddressFamily 用来指定socket解析地址的寻址方案。Inte.Network标示需要ip版本4的地址,Inte.NetworkV6需要ip版本6的地址 

SocketType参数指定socket类型Raw支持基础传输协议访问,Stream支持可靠,双向,基于连接的数据流。 

ProtocolType表示socket支持的网络协议 


定义主机对象: 

IPEndPoint类:IPEndPoint构造方法 位置:System.Net 

原型:1)   public IPEndPoint(IPAddress address,int port)     2)public IPEndPoint(long address,int port) 参数1整型int64如123456,参数2端口int32 

主机解析: 

利用DNS服务器解析主机,使用Dns.Resolve方法 

原型:public static IPHostEntry Resolve(string hostname) 参数:待解析的主机名称,返回IPHostEntry类值,IPHostEntry为Inte.Net主机地址信息提供容器,该容器提供存有IP地址列表,主机名称等。 

Dns.GetHostByName获取本地主机名称 

原型:public static IPHostEntry GetHostByName(string hostname) 

GetHostByAddress 

原型:1)public static IPHostEntry GetHostByAddress(IPAddress address) 参数:IP地址 2)public static IPHostEntry GetHostByAddress(string address) IP地址格式化字符串 


端口绑定和监听: 

同步套接字服务器主机的绑定和端口监听 

Socket类的Bind(绑定主机),Listen(监听端口),Accept(接收客户端的连接请求) 

Bind:原型:public void Bind(EndPoint LocalEP)参数为主机对象 IPEndPoint 

Listen:原型:public void Listen(int backlog) 参数整型数值,挂起队列最大值 

accept:原型:public socket accept() 返回为套接字对象 



阅读(624) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~