简单实例:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h>
#include <string.h>
#include <strings.h>
#include <errno.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char const *argv[])
{
struct sockaddr_in m_addr,u_addr;
int len;
int sockfd;
char buf[1111];
len=sizeof(struct sockaddr_in);
// 这里简单做个UDP协议与飞秋发送,接收信息。
sockfd=socket(AF_INET,SOCK_DGRAM,0);
bzero(&m_addr,len);
bzero(&u_addr,len);
m_addr.sin_family=AF_INET;
m_addr.sin_port=htons(2425);//飞秋默认端口
m_addr.sin_addr.s_addr=INADDR_ANY;
bind(sockfd,(struct sockaddr *)&m_addr,len);
while(1){
bzero(buf,sizeof(buf));
// 对方上线后,会发个广播给所有人,这里就接收打印。
recvfrom(sockfd,buf,sizeof(buf),0,(struct sockaddr*)&u_addr,&len);
printf("recv from %s:%d\n%s",(char *)inet_ntoa(u_addr.sin_addr.s_addr),ntohs(u_addr.sin_port),buf);
// 这里根据飞秋的传输协议,写成这样的传输格式。发送给对方也添加你为好友
strncpy(buf,"1:100:shirouzu:jupiter:1:Hello",sizeof(buf));
sendto(sockfd,buf,sizeof(buf),0,(struct sockaddr*)&u_addr,len);
}
return 0;
}
使用:
启动这个之后,用桌面端安装好的飞秋刷新下,重新登录下。
然后这个端就会收到他上线的广播,然后上线会向所有人发送广播。
然后收到广播后,又发回一条,让对方添加为你好友的信息。
这里要注意端口协议那些。
消息通信用udp,如果是文件就用tcp
具体可以参考飞秋源码。
参考:
http://blog.sina.com.cn/s/blog_952fe72a01013iam.html
http://blog.csdn.net/hwz119/article/details/1534233