社区
C#
帖子详情
真心求教C#常连接
我看你有戏
2007-06-28 06:06:24
C#常连接
有没有人熟悉的,给点提示吧
感觉每次发完包后就close连接比较浪费资源
先谢谢了
弄了好几天了
如提示有帮助必定给分
...全文
622
22
打赏
收藏
真心求教C#常连接
C#常连接 有没有人熟悉的,给点提示吧 感觉每次发完包后就close连接比较浪费资源 先谢谢了 弄了好几天了 如提示有帮助必定给分
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
TT老老
2008-08-28
打赏
举报
回复
学习 :)
ksoft_luo
2007-07-02
打赏
举报
回复
http1.1支持长链接的
warensoft1
2007-07-01
打赏
举报
回复
上面的兄弟在讨论这个问题的时候一定要知道,为什么HTTP的连接可以不用就不连?
原因是这样的,在我们第一次访问该网站的时候服务器会为我们第一个用户建立一个session而这个session的ID会被存在我们本机的COOKIE中(不信的话你可以试试把COOKIE禁用,看看还能不能保存你的匿名用户信息),这样,下次再一次连接的时候服务器会根据COOKIE中的SESSIONID再找到你是用哪个session保存会话状态的。
而我们在作Socket编程的时候,一般客户端的IP的PORT号都有可能是随机的,一但是断线的并且再一次连接的话,客户端的SOCKET就可能发生改变。
因此,要想实现这总不用就不连的方式,我们也要考虑能不能像HTTP一样想办法在客户端上作一个类似COOKIE的东西,用来保存服务器上的会话状态
xiaoliangwh
2007-06-30
打赏
举报
回复
up
我看你有戏
2007-06-29
打赏
举报
回复
我看了你的文章
是长连接的话怎么还要
close Socket 呢?
http://www.cnblogs.com/wzd24/archive/2007/06/13/782833.html
private void ReceiveCallBack(IAsyncResult ar)
{
UserInfo info = (UserInfo)ar.AsyncState;
Socket handler = info.socket;
int readCount = 0;
try
{
readCount = handler.EndReceive(ar);//调用这个函数来结束本次接收并返回接收到的数据长度。
}
catch (SocketException)//出现Socket异常就关闭连接
{
CloseSocket(info);//这个函数用来关闭客户端连接
return;
}
catch
{
}
if (readCount > 0)
{
byte[] buffer = new byte[readCount];
Buffer.BlockCopy(info.Buffer, 0, buffer, 0, readCount);
Analyzer(info, buffer);//这个函数用来处理接收到的信息。
try
{
handler.BeginReceive(info.Buffer, 0, info.Buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallBack), info);//向系统投递下一个接收请求
}
catch (SocketException) //出现Socket异常就关闭连接
{
CloseSocket(info);
}
catch
{
}
}
else //如果接收到0字节的数据说明客户端关闭了Socket,那我们也要关闭Socket
{
CloseSocket(info);
}
}
wzd24
2007-06-29
打赏
举报
回复
我文章里的Socket就是这样处理的!
我一般都是做长连接的!
我看你有戏
2007-06-29
打赏
举报
回复
我的问题是
Socket一次连接后发包 n 次
发了n次后
Socket才close
而不是发一次包就需要连接一次,关闭一次
先谢谢大家的回复
期待更加精彩的答案
wzd24
2007-06-29
打赏
举报
回复
看看我的BLOG:http://wzd24.cnblogs.com
我几了几篇关于Socket的文章。觉得有用就给我分吧!
呵呵………………
lshvs2005
2007-06-29
打赏
举报
回复
偶 只知道常连接与短连接 下,WINDOWS的方送方式不一样,
所以程序也就完全不一样。
effun
2007-06-29
打赏
举报
回复
HTTP不都是短连接吗?所以在我的程序里都是用短连接的。
我看你有戏
2007-06-29
打赏
举报
回复
我说的是 Socket 连接,不是数据库连接
greenery
2007-06-29
打赏
举报
回复
我记得我们以前用的时候,也是要求用完就要关闭连接的。
但是,有些像ftp软件,他们就会做这个保持连接的事情,他们会每隔一定时间,向对方发送一个命令,来保持连接不断开。要不你参考ftp的做法看行不行。
elzero
2007-06-29
打赏
举报
回复
不用就要关
greenery
2007-06-29
打赏
举报
回复
什么叫常链接啊
wzd24
2007-06-29
打赏
举报
回复
chanfengsr(巉沨散人) ( ) 信誉:100 Blog 加为好友 2007-06-29 14:27:13 得分: 0
用连接池,即使CLOSE调了,一定数量得连接还是保持着,一段时间不用后自己会释放。
-----------------------------------------------------------------------------------
Socket连接池??呵呵…………
根本就没有这个东西!
chanfengsr
2007-06-29
打赏
举报
回复
用连接池,即使CLOSE调了,一定数量得连接还是保持着,一段时间不用后自己会释放。
wzd24
2007-06-29
打赏
举报
回复
出异常和客户端断开了当然要Close掉!
RedGoldFish
2007-06-29
打赏
举报
回复
按LZ的要求是长连接比较好,在Socket操作中,建立连接是最耗时间和资源的操作,保持一个连接比每次重新建立更合算,尤其是在对反应速度和效率要求高的情况下. 我们自己做的Socket 服务器都是长连接的.
在HTTP下是短连接,这很大程度是因为在Web环境下Socket连接并不稳定. 我估计LZ用的环境很可能是在稳定的LAN环境中,即使是WAN也有比叫可靠和快速的连接.
RedGoldFish
2007-06-28
打赏
举报
回复
LZ 说的是什么连接? Socket 连接还是 数据库的 Connection ?
guyehanxinlei
2007-06-28
打赏
举报
回复
用完对象及时关掉会好一点
加载更多回复(2)
完整java开发中JDBC
连接
数据库代码和步骤
JDBC
连接
数据库 •创建一个以JDBC
连接
数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在
连接
数据库之前,首先要加载想要
连接
的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。 例如: tr
unity人物旋转移动代码_Unity3D研究院之脚本实现模型的平移与旋转(六)
123 说:雨松大大,有个问题想请教一下,我用UNET构建了个小场景,在电脑上可以客户端可以
连接
到服务器,Windows和Linux都可以,发布到安卓缺连不了,这是问什么呢说:
求教
一下,刚刚接触unity,在做这个练习,问一下我把“var translation : float = Time.deltaTime * 10”放在update函数之外,为什么没法实现效果?这个Time.deltaTim...
unity 平移图片_Unity3D研究院之脚本实现模型的平移与旋转(六)
123 说:雨松大大,有个问题想请教一下,我用UNET构建了个小场景,在电脑上可以客户端可以
连接
到服务器,Windows和Linux都可以,发布到安卓缺连不了,这是问什么呢说:
求教
一下,刚刚接触unity,在做这个练习,问一下我把“var translation : float = Time.deltaTime * 10”放在update函数之外,为什么没法实现效果?这个Time.deltaTim...
《IT人-不要一辈子靠技术生存 》
我现在是自己做,但我此前有多年在从事软件开发工作,当回过头来想一想自己,觉得特别想对那些初学JAVA/DOT。NET技术的朋友说点心里话,希望你们能从我们的体会中,多少受点启发(也许我说的不好,你不赞同但看在我
真心
的份上别扔砖头啊).一。 在中国你千万不要因为学习技术就可以换来稳定的生活和高的薪水待遇,你千万更不要认为哪些从事市场开发,跑腿的人,没有前途。不知道你是不是知道,咱们中国有相当大的一部
原创讨论-服务器安全加固 VS ******?
应用:web服务器主机:IDC托管,单独IP单独域名,掩码控制单独vlan断绝旁注,arp欺骗网络层面:外网防火墙开放TCP 80,对指定IP开放3389主机开启IPSEC筛选,TCP/IP筛选,端口最小化系统层面:<systemroot>\System32\cmd.exe更名改权限用户:IIS匿名,IIS进程,administrator分别给予必要权限更新所有补...
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章