社区
C#
帖子详情
Socket编程中,服务器端如何获得客户端用户信息,并判断具体是哪个用户断开连接
lunar_1984
2006-12-04 11:35:27
服务器端想判断具体是哪个用户断开连接,但不知道如何通过socket获得用户的标识信息,比如是哪个用户,请高手指教
...全文
996
9
打赏
收藏
Socket编程中,服务器端如何获得客户端用户信息,并判断具体是哪个用户断开连接
服务器端想判断具体是哪个用户断开连接,但不知道如何通过socket获得用户的标识信息,比如是哪个用户,请高手指教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xu_2007
2006-12-06
打赏
举报
回复
上面朋友说的这个类还可以用另一种定义方法:
public class client
{
public Thread thread;
public Socket socket;
public string nameid;
}
于娜
2006-12-04
打赏
举报
回复
lunar_1984()
回YuNa123 我是在对信息处理前循环调用client.Connected来判断客户端是否连接,现在只是不知道如何把客户和socket对应起来,请问如何把客户和他响应的socket连接起来,从而获得他的状态
-----------------------------------------------
建立与客户的socket连接后, 然后让客户端在发送一个自定义login | userID命令,接着服务器端把客户的ID 和他的Socket都保存到一个类对象中,同时在对象中建一个静态字段State 用他来表示客户的状态,用 “connect” 或者 "closed" 来描述。连接成功后直接添上 connect 即可.
// 下面是那个静态类
public class client
{
public static string clientName;
public static string clientSocket;
public static string userIP;
public static string State;
}
xu_2007
2006-12-04
打赏
举报
回复
你说的对,如果碰到突然停电或者客户端出现了异常就不能用这种方法了,那么就只能在服务器端做处理了,方法是服务器端定义一个时间控件,让它每过多少时间就检查一下在线列表,看看有没有不在线的,如果没有就删除那个用户.具体实现还是自己想想吧!
lunar_1984
2006-12-04
打赏
举报
回复
回楼上 如果是客户端异常退出,它不发消息我就不能判断了,所以这样不行。
回YuNa123 我是在对信息处理前循环调用client.Connected来判断客户端是否连接,现在只是不知道如何把客户和socket对应起来,请问如何把客户和他响应的socket连接起来,从而获得他的状态
xu_2007
2006-12-04
打赏
举报
回复
服务器要判断哪个用户离线,大可以在客户端关闭事件中让客户端发个离线消息给服务器就行了,然后服务器从在线列表中把那个用户删除即可
于娜
2006-12-04
打赏
举报
回复
发送一个字定义协议命令 LOGIN | 用户ID
然后在服务器端处理,把ID存放到数组就行了
lunar_1984
2006-12-04
打赏
举报
回复
请问如何获取用户的ID,我用的是 private TcpClient client;
client = tcpListener.AcceptTcpClient();处理的如何从client中获得用户ID,请细说 谢谢
于娜
2006-12-04
打赏
举报
回复
连接后,把客户的socket都保存到一个数组中。保存时候最好使用键值对,键就是用户ID,值就是用户Socket ,这样你就可以区分是哪个用户的连接了,然后在执行相映的操作
spunder
2006-12-04
打赏
举报
回复
帮顶一下
Socket文件传输
本软件使用MFC采用面向对象的方法实现了基于Socket的文件传输。功能完整。
Java实现Socket长连接和短连接
Java实现Socket长连接和短连接,实现原理可参见个人博客
Android的socket长连接(心跳检测)
这是Android的socket长连接(心跳包),由于本人项目
中
需要用到长连接,所以先做了个demo,亲测是没有问题的。
C# Socket通讯框架,封装了Client和Server端类库,带实例
C# Socket通讯框架,封装了Client和Server端类库,带演示实例和使用手册.
Android
socket编程
实现消息推送Server+Client
该资源实现了基于Android端的socket长连接编程消息推送,很好的模仿了QQ消息的推送原理。支持p2p、s2p消息推送
C#
111,125
社区成员
642,540
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章