最近要做个简单的聊天系统,服务器和客户端通信的部分已经做了许久,也差不多了。现在要做客户端与客户端通信模块,想用UDP实现,而且我都是基于CSocket的。但是我不知道如何实现?我初步是这样想的:客户端登录后,就启动一个线程,并在线程内创建一个套接字进行循环接收监听,而当主动与对方聊天时,按下发送按钮就调用同一个套接字的发送函数。。我不知道这样行不行。。有几个技术性问题在这里提出:
1、因为在主线程和子线程内都需要使用同一个套接字,就存在了线程间如何传递套接字的问题细看了一些贴子说线程间要传递的是套接字的句柄,先在一个线程detach(),然后再在另一个线程attach(),可是,且不说我这样做是不是真的成功了,问题在于我两个线程都要用到同一个套接字阿,而且子线程是直到程序退出才结束(我打算用循环语句让子线程不停的监听消息),这样主线程怎么关联那个套接字呢?不知道大家看明白否?也希望能提出别的简单的方法,但最好不要叫我改用winsock、socket API等,因为我不想再花时间去研究了。