我想写一款类似QQ的通讯软件 远程远接的。各位有什么思路,源码???用TCP协议?还是UDP协议好? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个要弄 P2P 通讯,都先就要有一台公网服务器作为用户之间打洞用的。至于 TCP 或 UDP 协议,只要握手协议和数据包设计得好,都可以的。 UDP协议经常有收不到信息现象。 QQ 开好多端口的,tcp与udp 貌似都有。它的一个语音聊天就有好多高手做好几年,申请多项专利~~有鉴于此,我真佩服你!需要哪种资料可以问问我,自己收集了部分通信资料,不是很全。 想起N年前的QQ发送消息的提示:通过服务器中转感觉没有中间服务器的通讯软件通用性还是不够强的,纯属个人臆测 [[email protected]][/email]还没收到你的邮件 [[email protected]][/email]我要远程连接那些通信资料。谢谢。 可以从飞鸽传书做起。如果在互联网上用,P2P打洞是少不了的。本人正在研究MSN的协议,打算自己做个MSN玩一玩。 这个简单 用到那个为winsock控件 想跟大家学习一下:敢问UDP和TCP/IP都用行不行?1、UDP实现首次连接:互相告诉对方自己的外网IP,以及侦听端口号;2、一旦首次连接后,后续的对话通讯使用TCP/IP,一个做服务端,一个做客户端;注:本人对UDP不是太了解,所以问题可能会惹出大笑话,呵呵! 我22楼的思路,主要是因为这里有人说UDP不需要服务器,那么我上面的思路的优势是不是就省了服务器了呢?呵呵,我也不知道! TCP或UDP对于传输影响不大的在P2P的打洞过程中,比较典型的用法是IP包处理,注意一下代码long P2PServer::BeginServer(){ int rd; // ===================== 创建套接字 ===================== SocketHandle = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);//这里是IPPROTO_IP,不是IPPROTO_TCP或IPPROTO_UDP if(SocketHandle < 0){ return 0; } // ===================== 创建侦听 ===================== ServerAddress.sin_family = AF_INET; ServerAddress.sin_port = htons(LocalPort); ServerAddress.sin_addr.s_addr = htonl(INADDR_ANY); rd = bind(SocketHandle,(sockaddr*)&ServerAddress,sizeof(sockaddr)); if(rd == SOCKET_ERROR){ return 0; } // ===================== 开启接收线程 ===================== ThreadHandle = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)OnReadEvent,this,0,&ThreadID); return 1;} 我要远程连接那些通信资料LZ ,这个问题我帮不了你,我也就根据楼上的总结一个思路。首先你要判断通信两端的上网类型,都是独立的IP那就好办了。跟局域网一样~如果是拨号上网,那就要“打洞”了。原理大概是普通的数据包,没有包含端口映射信息,按IP发送到对方后,对方不知道要转发给哪一个端口。不知道说明白了没有~~没有的话,烦请楼上的详细讲一下,或者给出相关的资料。我研究了一点局域网内语音和视频交流的皮毛知识~~ UDP协议更方便,TCP协议需要监听但是更安全一些。我当时做的时候用的是UDP,源码还可以找到。当时不单单把聊天做出来了,而且还可以传送文件以及视频聊天,甚至可以远程。后来时间有限就没有完善了,基本上功能都可以实现,需要源码的话联系我。 观察了下QQ好像是UDP连接服务器两人聊天时建立TCP 11楼:求资料,谢谢!!!![email protected] http://www.mndsoft.com/Blog/VB6/1178.html別給個鏈接 用TCP做文本发送与命令,UDP打洞直连发文件视频流什么的比较靠谱 能不能发我参考一下,EMAIL:[email protected] VBA中:=是什么意思? 程序界面乱码 急!!!实时错误 '3705' 对象打开时不允许操作!!! 请问能不能实现在运行程序后用鼠标拖动窗体上的某个对象,如command对象 用vb关闭外部正在运行的程序(进程),多谢,很急!~ 100分求 一答案 请问,DATAGIRD问题 刚才那种做法可能是太难了,那么换成这样行不行?像“电台、地址栏、金山毒霸、链接”一样 关于VB数据类型转换的问题. 大虾!绝对给分!!! Webbrowser 响应On click 事件 问题 access 多条件查询
至于 TCP 或 UDP 协议,只要握手协议和数据包设计得好,都可以的。
它的一个语音聊天就有好多高手做好几年,申请多项专利~~
有鉴于此,我真佩服你!
需要哪种资料可以问问我,自己收集了部分通信资料,不是很全。
[[email protected]][/email]还没收到你的邮件
[[email protected]][/email]我要远程连接那些通信资料。谢谢。
我22楼的思路,主要是因为这里有人说UDP不需要服务器,那么我上面的思路的优势是不是就省了服务器了呢?呵呵,我也不知道!
在P2P的打洞过程中,比较典型的用法是IP包处理,注意一下代码long P2PServer::BeginServer()
{
int rd;
// ===================== 创建套接字 =====================
SocketHandle = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);//这里是IPPROTO_IP,不是IPPROTO_TCP或IPPROTO_UDP
if(SocketHandle < 0){
return 0;
}
// ===================== 创建侦听 =====================
ServerAddress.sin_family = AF_INET;
ServerAddress.sin_port = htons(LocalPort);
ServerAddress.sin_addr.s_addr = htonl(INADDR_ANY);
rd = bind(SocketHandle,(sockaddr*)&ServerAddress,sizeof(sockaddr));
if(rd == SOCKET_ERROR){
return 0;
}
// ===================== 开启接收线程 =====================
ThreadHandle = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)OnReadEvent,this,0,&ThreadID);
return 1;
}
首先你要判断通信两端的上网类型,都是独立的IP那就好办了。跟局域网一样~
如果是拨号上网,那就要“打洞”了。
原理大概是普通的数据包,没有包含端口映射信息,按IP发送到对方后,对方不知道要转发给哪一个端口。
不知道说明白了没有~~
没有的话,烦请楼上的详细讲一下,或者给出相关的资料。我研究了一点局域网内语音和视频交流的皮毛知识~~
我当时做的时候用的是UDP,源码还可以找到。当时不单单把聊天做出来了,而且还可以传送文件以及视频聊天,甚至可以远程。后来时间有限就没有完善了,基本上功能都可以实现,需要源码的话联系我。
两人聊天时建立TCP
[email protected]
別給個鏈接