一台WEB服务器,还有一台服务器A.WEB服务器上的WEB网站项目,有一个页面test.aspx,打算在该页面中使用socket的TCP/IP与服务器A进行同步通讯。
与服务器A进行通讯可以建立长连接。有指定的IP和端口。
但这个页面test.aspx是有可能多人同时访问的。这种方案行得通么?
与服务器A进行通讯可以建立长连接。有指定的IP和端口。
但这个页面test.aspx是有可能多人同时访问的。这种方案行得通么?
解决方案 »
- 点击浏览器的后退按钮,RadioButton不能恢复选项的问题
- <siteMap> 元素的下一级只需要一个 <siteMapNode> 元素
- FCK编辑器出错
- 请推荐一个好的免费空间不胜感谢?
- 请教ArrayList绑定DataGrid的问题
- 如果DataSet中有数据,怎么样使DataGrid中的CheckBox为true!
- 求救啊,radgrid模板textbox取数据问题
- 當嘗試執行專案時發生錯誤! 無法在web服務器上啟動偵錯, 未設定偵錯該專案!
- 这种代码怎么用response.write来写?
- asp.net与asp的集成问题,谁能提供帮助?
- 网页实际问题 网页上如何实现鼠标focus事件
- 关于模态化窗口
如果你的web和服务器A通讯很慢 那你的网站运行效率就慢了。
这首先要明确概念,否则根本无法与懂得实现这些功能的技术人员沟通,就更不用谈方案“行得通”了。比如说“在该页面中”这个概念,是指的在浏览器上的那个阶段看到的暂时页面呢?还是在asp.net程序中Page对象从创建到输出html之后立即销毁这个短暂的瞬间呢?分别在这两个概念实现之中,你的socket又怎样存在呢?我想你的这个设计还无法用于评估所要做的工作、时间、成本,因为技术上还说不清楚概念。
收到的数据以response.write的形式输出来。应该来说test.aspx的工作都在page_load事件中完成的。
但就看test.aspx页面在多人同时访问时, 会不会出问题呢.
我想的是,在WEB网站项目中,建一个全局的ClientSocket,一直与服务器A保持连接.
我们做了个测试,可以正常发送/接收数据,但在资源关闭还存在问题。准备了几个类及页面:
一个app_code中的静态类 TestSocket.cs
有:public static Socket ClientSocket;
public static string RecData = "";一个socket.aspx,建立/初始化了一个全局的ClientSocket连接。
一个socketClose.aspx,关闭之前建立的全局的ClientSocket连接。相关代码:
if (TestSocket.ClientSocket != null)
{
if (TestSocket.ClientSocket.Connected)
{
TestSocket.ClientSocket.Shutdown(SocketShutdown.Both);//发送完成之后停止Socket
TestSocket.ClientSocket.Close();//发送完成之后关闭Socket
Tools.WriteLog("断开之前连接:");
}
}一个tcp.aspx,用于发送/接收消息
if (TestSocket.ClientSocket != null)
{
if (TestSocket.ClientSocket.Connected)//判断Socket是否已连接
{
byte[] SendMessage = new byte[100];
SendMessage = Encoding.ASCII.GetBytes(_msg);
CarTraffic.ClientSocket.Send(SendMessage);
Tools.WriteLog("发送数据:" + _msg);
}
}///////////////////
测试时,先开启socket.aspx,然后再运行tcp.aspx,从日志记录,观察到发送与接收到数据都没有问题。
测试完毕,运行socketClose.aspx。最后在任务管理器,发现 aspnet_wp.exe进程,一直在90多左右。说明应该还有资源没有关闭掉。还需要哪儿作处理么?
真是怪了. 有没有高人知道呢?