局域网聊天程序模型
大家好,有没有写过局域网聊天程序或对这块比较了解的,我想问一下两个客户端之间的通过server通信架构是怎样的?如图:
client1---send msg--->server---forward msg--->client2 同理,client2也能向client1发送信息。。
我的想法是这样的,首先client都要先注册到server(注册结构体含:userID,name,password,ipaddress..等),然后如上图所示进行聊天,如果用UDP的话,应该可以实现,但是如果我想发文件呢?发文件一般是用TCP吧,就不知道怎么做了。。
整理一下(系统是linux内核,ubuntu 8.10,语言:C/C++ ):
Q1:两个client如何通过server通信,用UDP跟TCP有什么不同及要注意的地方,主要是怎样实现?有哪些函数介绍?
Q2:如果我想在一台电脑上开两个客户端(客户端都是通过IP注册到server的),跟另外不同的(或相同的)客户聊天,能实现吗?原理是怎样,是否有函数或资料介绍。
Q3:因为要发送文件,所以我想用多进程实现,大家觉得这样的聊天程序是多进程好,还是多线程好,多线程比较不好控制。。这方面有没有什么资料推荐。。
问题比较多,大家能答就答,一点也好,全部回答更好 ^_^,有劳大家。。