和学生的学习互动记录(10嵌)
++++++++++++++++++++++++++++++
2012-5-21
编程原则:先有思路,后编代码。
C/S的四步:
1. C/S源代码分析
2. 加入线程技术
3. 实现广播
4. 实现单播
我对 第三步 的思路:
1. 服务器端:定义全局变量SOCKSET(数组或链表),用于存放 和 客户端 连接的 socketfd。
2. 客户端一启动,就CONNECT服务器。
3. 服务器端:对SOCKSET的访问是互斥的(要用互斥锁),只要客户端连接,就将 和 客户端 连接的 socketfd 放入 SOCKSET。
4. 服务器端:只要客户端发数据,就将 数据 发送给 SOCKSET中的 所有 socketfd。
--------------------------------------------------
2012-5-26
我对 第四步 的思路:
1. 客户端启动方式: ./client XXX 注意:XXX表示姓名,不能重名,因此,服务器要判断是否重名。
2. 服务器端:将 和 客户端 连接的 socketfd 以及 XXX 放入 SOCKSET,这样 socketfd 和 XXX一一对应。
3. 服务器端:只要客户端连接,就将SOCKSET中的有效XXX广播给所有客户。
4. 客户端发信息到服务器,方式:XXX--信息串 注意:XXX表示单播的对象。
5. 服务器端:收到 XXX--信息串 ,根据 XXX 在SOCKSET找到其对应的socketfd,然后将 信息串 发给 socketfd。
++++++++++++++++++++++++++++++