#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#define RPORT 5000 //要链接的端口号
#define SPORT 6000
#define MAXBUFLEN 100 //能够接收的最长数据
main()
{
int sockfd1,sockfd2;
struct sockaddr_in my1_addr;
struct sockaddr_in my2_addr;
struct sockaddr_in sendpc_addr;
struct sockaddr_in receivepc_addr;
int addr_len,numbytes1,numbytes2,numbytes3;
char buf[MAXBUFLEN];
char test[3];
if((sockfd1 = socket(AF_INET,SOCK_DGRAM,0)) == -1)
{
perror("socket1");
exit(1);
}
if((sockfd2 = socket(AF_INET,SOCK_DGRAM,0)) == -1)
{
perror("socket2");
exit(1);
}
my1_addr.sin_family = AF_INET;
my1_addr.sin_port = htons(RPORT);
my1_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(my1_addr.sin_zero),8);
my2_addr.sin_family = AF_INET;
my2_addr.sin_port = htons(SPORT);
my2_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(my2_addr.sin_zero),8);
if(bind(sockfd1,(struct sockaddr*)&my1_addr,sizeof(struct sockaddr)) == -1)
{
perror("bind1");
exit(1);
}
if(bind(sockfd2,(struct sockaddr*)&my2_addr,sizeof(struct sockaddr)) == -1)
{
perror("bind2");
exit(1);
}
addr_len = sizeof(struct sockaddr);
if((numbytes1 = recvfrom(sockfd1,buf,MAXBUFLEN,0,(struct sockaddr*)&sendpc_addr,&addr_len)) == -1)
{
perror("recvfrom1");
exit(1);
}
printf("got packet from %s\n",inet_ntoa(sendpc_addr.sin_addr));
printf("packet is %d bytes long\n",numbytes1);
buf[numbytes1] = '\0';
printf("packet contains \"%s\"\n",buf);
close(sockfd1);
if((numbytes2 = recvfrom(sockfd2,test,3,0,(struct sockaddr*)&receivepc_addr,&addr_len)) == -1)
{
perror("recvfrom2");
exit(1);
}
if(test[0])
{
printf("*******************************************\n");
if((numbytes3 = sendto(sockfd2,buf,numbytes1,0,(struct sockaddr*)&receivepc_addr,sizeof(struct sockaddr))) == -1);
{
perror("sendto2");
exit(1);
}
printf("send %d bytes to %s\n",numbytes3,inet_ntoa(receivepc_addr.sin_addr));
}
close(sockfd2);
return 0;
}
xuel0532
- 粉丝: 1
- 资源: 6
最新资源
- springboot项目高校党务系统.zip
- springboot项目分布式架构网上商城.zip
- 美国JJ理疗床UI.zip
- springboot项目的S店车辆管理系统.zip
- springboot项目地方废物回收机构管理系统.zip
- springboot项目电子招投标系统.zip
- springboot项目大学生租房系统.zip
- springboot项目大学生就业服务平台.zip
- springboot项目大学生体质测试管理系统.zip
- springboot项目财务管理系统.zip
- springboot项目车辆充电桩.zip
- springboot项目藏区特产销售平台.zip
- springboot项目“智慧食堂”设计与实现.zip
- springboot项目java学习平台.zip
- springboot项目班级综合测评管理系统.zip
- springboot项目“漫画之家”系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈