主题:9360网络连接的问题

  共有39247人关注过本帖    
帅哥哟,离线,有人找我吗?
yy
1楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-4-25 15:22:00   [显示全部帖子]

例程主要为提供测试和代码方面的参考,实际应用的时候需要根据具体的应用需求来编码。

tcp程序里,tcp server端通过accept函数得到的tcp client连接的SOCKET,然后通过send函数发送消息,recv来收消息,closesocket来关闭等。

例程里封装成了一个TCP的SERVER类,但是这个SERVER类只弄一个SOCKET m_sockets用来和客户端通信,这就等于是默认只和一个客户端通信。按你的需求,你需要至少6个这样的SOCKET,比如做成SOCKET m_sockets[6];然后创建6个线程,分别负责与6个客户端的通信。同时你在accept后,可以先判断当时有多少客户端已经连上了在用了,哪些SOCKET还未使用,如果连接已经满了,就可以直接closesocket拒绝客户端的连接。你还可以在accept后判断客户端的IP地址,然后决定是否closesocket。

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
yy
2楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-4-26 14:25:00   [显示全部帖子]

这两个类只是例程封装的两个类,你完全可以根据你的需求自己封装你自己的TCP类,你可以自己定义你的类名,定义你的类的方法,以及你自己的收发线程名,你希望封装成多少个类都是你自己决定的。
如果你只是希望改动最少的代码,你可以把例程里SOCKET m_sockets;改成SOCKET m_sockets[6];然后依次accept,然后收发线程也需要6个,传入线程的参数也要修改下,线程需要知道自己对应的是哪个SOCKET,即哪个TCP客户端,还有些别的地方也要做相应的修改。
我还是建议你重头写个,这样更容易理解些。

  单帖管理 | 引用 | 回复 回到顶部

返回首页

9360网络连接的问题

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: