有关TCP、UDP的SOCKET共存的问题
打算编写一个对话框程序,里面既有TCP通信,又有UDP通信。
我已经完成了UDP通信,方式是:新建一个基类为CSOCKET的新类,命名为CMySocket,重载OnReceive函数。对话框中创建一个该类的对象m_pMyUDPSocket,该对象用于UDP协议的数据通信。
现在我想在原程序基础上增加TCP通信,想法有两个:
想法一:
类不增,增对象。即,再创建一个CMySocket类的对象m_pMyTCPSocket,用于TCP协议的数据通信。两个对象可以在初始化的时候传一个标识参数,用于明确自己是哪种协议的,以使OnReceive里可根据不同的标识作不同的处理。
想法二:
增类,增对象。即,重新创建两个基类为CSOCKET的新类,一个为CMyTCPSocket类,另一个为CMyUDPSocket类,分别重载OnReceive函数,分别创建类的对象,处理各自协议下的通信。
无论第一种还是第二种,我都有这样一个问题:
当TCP协议的数据到来时,会只触发m_pMyTCPSocket对象的OnReceive么?同理,当UDP协议的数据到来时,会只触发m_pMyUDPSocket对象的OnReceive么?是否一定需要通过绑定不同的端口才能实现?
另外,我提出的两种想法,哪个更好一些?
谢谢!