在网页中使用Socket编程
来源:互联网 发布:淘宝全屏图片轮播制作 编辑:程序博客网 时间:2024/06/05 09:11
背景:要完成的任务是这样的,要通过网页对一个服务器进行操作,服务器接受Socket TCP连接。
一开始,在网页里创建Socket,然后连接服务器,没有做其它特殊的处理,结果数据只能发送一次,Socket便断开。
原来,HTTP协议是无连接、无状态的,网页的生命周期仅是从页面的请求到页面装载完成,一量装载完毕,网页中的所有对像便被销毁。状态的只在需要门的技术,在ASP.NET中可以用Cookie、Application、Session、ViewState等方法,因为Socket连接是WEB服务器与另外一台服务器连接,状态保存到服务器比较好,如果保存在客户端则在每次请求时还需要把状态返回到服务器;从生存周期上考虑,状态只需要保存到用户关闭浏览器,而无而长期保存。鉴于以上考虑,采用Session非常合适。
程序流程如下:客户请求网页,创建两个线程分别用于Socket发送和接收,然后将线程的引用存入Session,这样线程的引用便被保存下来,下次再请求页面时便不用再重新连接,可以直接发送或接收数据。当用户退出时,要求用户点击退出按钮,服务器响应该事件,断开Socket连接并销毁线程即可,而Session会在用户关闭浏览器后20分钟内自动失效销毁。
(2007-01-29)
但这样有一个问题,这样多个客户都可以通过浏览器打开该页面,但是各个页面使用的Session是一个,所以使用的线程也是一个,这样就导致多个用户之间发送的指令相混。
想到一种方法,还没有实现,就是每个线程使用一个随机生成的数字作为Session的ID,这样基本上可以保证多个用户不使用同一个线程,而这个ID保存在客户端,每次发送数据时Request就保存了其Cookie信息,这样便避免了所有客户端使用同一Session的问题。
- 在网页中使用Socket编程
- 在C#中使用异步Socket编程实现TCP网络服务
- 在socket中使用域名
- 在socket中使用域名
- 在socket中使用域名
- 在网页中使用对话框
- RAW SOCKET编程在c#中应用
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架
- 在php中直接使用socket编程对memcached缓存进行增删改查数据
- 在Android操作系统中如何使用Socket编程实现简易聊天室
- socket编程中select的使用
- socket编程中select的使用
- socket编程中select的使用
- socket编程中select的使用
- socket编程中select的使用
- socket编程中select的使用
- socket编程中select的使用
- HR--Copy of fetching HR data in different ways
- .NET 框架中使用配置文件(转)
- 如何编程操作Web.config文件中的数据
- Web.Config文件详解(转)
- web.config文件自定义配置节的使用方法 (转)
- 在网页中使用Socket编程
- 惟帆K300A ADSL Modem路由设置
- ASP.NET页面之间传递参数的几种方法荟萃(转)
- IIS 服务器端include指令
- 创建Active控件
- JavaScript调用C#代码
- 在多线程中调用WinForm(C#) (转载)
- .NET自定义控件——与属性相关的设计时特性
- C#编程笔记