小弟想在公司OA系统当中增加局域网聊天功能,参考了一些网上的源代码,例子采用的是UDPserver和client
但我发现控件还有TCP的server和clint..
因为对这个东西不懂,请教以下的一些问题
我本人倾向与使用服务器端的这种做法,我想在服务器端可以把聊天记录保存。
我想聊天可以做到 点对点 和 多人会议这两种情况.1.想知道 UDP 和TCP 以上用哪种合适,他们有什么区别.?
2.发现有一些聊天程序采用了服务器端和客户端的形式.自以为是服务器端放 server控件 客户端放client控件,但对服务器如何将信息分发给目标client有疑惑?或者说服务器用什么控件将信息接收,而又用什么控件将信息转发到客户端,而客户端是用什么控件接收的信息?
3,看到了一个源代码,他用的UDP。没有使用服务器与客户端的形式。就是没有服务器转发而用广播的形式实现了我想达到的效果。我的问题是:这么做除了不用服务器这个区别外还有什么其他的不同?
但我发现控件还有TCP的server和clint..
因为对这个东西不懂,请教以下的一些问题
我本人倾向与使用服务器端的这种做法,我想在服务器端可以把聊天记录保存。
我想聊天可以做到 点对点 和 多人会议这两种情况.1.想知道 UDP 和TCP 以上用哪种合适,他们有什么区别.?
2.发现有一些聊天程序采用了服务器端和客户端的形式.自以为是服务器端放 server控件 客户端放client控件,但对服务器如何将信息分发给目标client有疑惑?或者说服务器用什么控件将信息接收,而又用什么控件将信息转发到客户端,而客户端是用什么控件接收的信息?
3,看到了一个源代码,他用的UDP。没有使用服务器与客户端的形式。就是没有服务器转发而用广播的形式实现了我想达到的效果。我的问题是:这么做除了不用服务器这个区别外还有什么其他的不同?
“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!
那么我就想到,如果 server接受到了信息,又是怎么给发出去的?
是让同form下的client发给接收端程序的server 还是 client本身也能接收。
b,反向通讯,通过服务器端给客户端发送文件;
c,实现客户端与服务器端的Chat聊天功能(稍加改动可转化为C->S->C的聊天程序)
d,如何使用IdTCPServer和IdTCPClient控件
e,初步实现线程命令方式,在传送文件的时候不会让服务器端停止响应
不知上面的五项可否满足你的要求
TCP是面向连接的,正式通信前要经三步握手协议建立连接(该过程往往比较耗时),建立连接后,在聊天过程中,可能经过好长一段时间双方才会说一句话,但这条连接线路始终存在,资源浪费啊 而且其 数据确认和重传机制会影响聊天的效率。
服务器端创建套接字SOCKET,绑定,然后就等待客户端;
客户端则创建套接字,然后根据服务器端的IP和端口号向Server发送数据,Server接收函数中会保存Client的地址(包括IP和端口号),这样就可以向Client发送数据了啊
发言:本用户 请求 把 字符串 发给 哪些 用户
听到:本用户 请求 把发给我的新的 字符串 返回给我
万分感谢