英雄本色-雪之狼

IT梦想 梦想IT 超越梦想 曾国藩家书 朱子家训 蓝海战略 三国商学院 百战奇略 三国忠效 软件工程 架构技术 企业管理 商业运作

原创 C#.net同步异步SOCKET通讯和多线程总结系列文章(1)收藏

出处:http://hi.baidu.com/playkk/blog/item/c5f8f5c22b6121180ef4778b.html

同步套接字通信

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() 返回为套接字对象

演示程序:

IPAddress myip=IPAddress.Parse(“127.0.0.1”);

IPEndPoint myserver=new IPEndPoint(myip,2020);

Socket sock=new Socket(AddressFamily.Inte.Network,SocketType.Stream,ProtocolType.Tcp);

Sock.Bind(myserver);

Sock.Listen(50);

Socket bbb=sock.Accept();


类别:.net(c#) | 添加到搜藏 | 浏览(42) | 评论 (0)
 
 

发表于 @ 2008年02月16日 08:55:00|评论(loading...)

新一篇: 线程处理对象和功能 | 旧一篇: C#WinForm多线程处理相关文章

用户操作
[即时聊天] [发私信] [加为好友]
英雄本色
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
英雄本色的公告
ITFLY8 放飞梦想!
移动开发 Java Oracle 迈向高端
商业运作...运筹帷幄... 独立Blog站点 http://blog.hongxuecn.com(商业模型讨论,Net3.5核心技术,开源项目...)
文章分类
收藏
MSDN专题
Office SharePoint Server 2007
MVP Blog
CSDN Reader
TerryLee技术专栏(RSS)
基于微软服务器平台产品
Web2.0
Ajax BLOG
Ajax中国
Ajax开发包
Flash开发
八佰搜
XML技术
中国XML论坛
华夏IT站
参考手册
51windows
asp.net 资料收集
CSS教程
HTML 语言教程
JavaScript技术讲座
Windows Mobile 资源
产品公司
技术BLOG
路鑫 Dotnet World (RSS)
Asp.net2.0专栏
Asp.net开发手记
asp技术网
代码基地博客站
向东IT博客
多版本技术
小灰的专栏
张子阳技术文章
成飞宇BLOG
正则表达式
毕加索的马
移动开发
网魂工作室
金色海洋工作室(RSS)
阿赖的个性空间
青州男孩
技术网站
.NET技术站
51CTO
68互联
asp.net 资料收集
Net技术
Net文档
TechNet脚本专家(微软)
Web技术库
华软网
天极Asp.Net专题
天道酬勤Blog
教程在线
漫步资源站
简明 Python 教程
豆豆技术网
软件技术开发网
金麦网络
阿蒙编程之家
教授BLOG
bitfan(数字世界一凡人)新浪BLOG
bitfan(数字世界一凡人)的专栏
开源项目
开源项目
控件工具
Asp制作工具
慧都控件网
其他链接
疯狂的程序员
软件工程
软件工程专家网
软件管理
商业Blog
巧克力宝瓶
生活思考
个人的管理
刘润博客
网页模版
中国站长在线
网页特效
JS(javascript)脚本收藏大全
最酷网页特效
网络学院
存档
软件项目交易
Csdn Blog version 3.1a
Copyright © 英雄本色