VC++实现基于TCP的网络聊天室遇到的问题
孙鑫写的“VC++深入详解”这本书里,有个聊天室的程序例程,是基于UDP的,这个例程是不区分什么服务端和客户端的。我想写一个基于TCP的聊天室,也不区分服务器端和客户端,...
孙鑫写的“VC++深入详解”这本书里,有个聊天室的程序例程,是基于UDP的,这个例程是不区分什么服务端和客户端的。我想写一个基于TCP的聊天室,也不区分服务器端和客户端,就写一个程序,两端都能用,能实现吗?
展开
3个回答
展开全部
TCP和UDP,一个是有连接通讯,一个是无连接通讯,这点要理解。
TCP是基于连接的协议。必须要一个服务端一个客户端。而且服务端必须要listen,才能传输数据。
TCP和UDP的主要区别是,TCP传输必须要先建立连接,再传输数据。而UDP,即使不建立连接,一样可以传输数据。只不过发出去的数据,目的地收不到罢了。所以你的想法是不能实现的。TCP一定有服务端和客户端之分。服务端监听端口,客户端在发送消息之前,先与服务端建立连接,服务端accept之后,才能传输数据。
而UDP是随便什么端,只把一组数据和他的目标IP地址扔到网络上,传输完全依赖路由器。如果UDP两端同时打开就正常通信,如果发端发送数据,而服务端没有监听,那这些数据就过去了,收不到。
有一本原理性的书《计算机网络原理》,讲的比较通透。
TCP是基于连接的协议。必须要一个服务端一个客户端。而且服务端必须要listen,才能传输数据。
TCP和UDP的主要区别是,TCP传输必须要先建立连接,再传输数据。而UDP,即使不建立连接,一样可以传输数据。只不过发出去的数据,目的地收不到罢了。所以你的想法是不能实现的。TCP一定有服务端和客户端之分。服务端监听端口,客户端在发送消息之前,先与服务端建立连接,服务端accept之后,才能传输数据。
而UDP是随便什么端,只把一组数据和他的目标IP地址扔到网络上,传输完全依赖路由器。如果UDP两端同时打开就正常通信,如果发端发送数据,而服务端没有监听,那这些数据就过去了,收不到。
有一本原理性的书《计算机网络原理》,讲的比较通透。
展开全部
能啊,再往后看那本书里面有啊。
更多追问追答
追问
你现在有那本书吗?能告诉我大概的位置吗?我找到的他在书里使用MFC建立的聊天室都是基于UDP的啊~~
追答
在第十五章的多线程的第六节,你先往后看,先了解多线程,编写聊天软件最好用到多线程,一个线程等待发送,一个线程等待接收。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以看看基于基于c++的mfc的socket设计理念,这样开发聊天室比较高效。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询