"); //-->
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
#define MAX_SEN 200
#define MAX_REC 200
#define SERADDR "192.168.1.11"
#define SERPORT 8000
int main(void)
{
int c_fd = -1, num = 0;
char cli_senbuf[MAX_SEN] = "abcdefg";
char cli_recbuf[MAX_REC];
struct sockaddr_in sin = {0};
struct sockaddr_in cin = {0};
socklen_t addr_len;
c_fd = socket(AF_INET, SOCK_DGRAM, 0);
if ( -1 == c_fd)
{
perror("socket");
return -1;
}
printf("c_fd = %d.\n", c_fd);
sin.sin_family = AF_INET;
sin.sin_port = htons(SERPORT);
inet_pton(AF_INET, SERADDR, &sin.sin_addr);
num = sendto(c_fd, cli_senbuf, strlen(cli_senbuf), 0, (const struct sockaddr *)&sin, sizeof(sin));
printf("客户端成功发送了%d个字符\n", num);
printf("客户端发送的内容是:%s\n", cli_senbuf);
num = recvfrom(c_fd, cli_recbuf, MAX_REC, 0, (struct sockaddr *)&cin, &addr_len);
printf("客户端成功接收了%d个字节\n", num);
printf("客户端接收的内容是:%s\n", cli_recbuf);
return 0;
}server.c
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
#define MAX_SEN 200
#define MAX_REC 200
#define SERPORT 8000
int main(void)
{
int s_fd = -1, ret = -1;
char ser_senbuf[MAX_SEN] = "hello";
char cli_recbuf[MAX_REC];
struct sockaddr_in ser_sin = {0};
struct sockaddr_in ser_cin = {0};
socklen_t addr_len;
char ipbuf[INET_ADDRSTRLEN];
s_fd = socket(AF_INET,SOCK_DGRAM,0);
if (s_fd == -1 )
{
perror("socket");
return -1;
}
printf("s_fd = %d.\n", s_fd);
bzero(&ser_sin,sizeof(ser_sin));
ser_sin.sin_family = AF_INET;
ser_sin.sin_addr.s_addr = INADDR_ANY;
ser_sin.sin_port = htons(SERPORT);
ret = bind(s_fd, (const struct sockaddr *)&ser_sin, sizeof(ser_sin));
if (ret < 0)
{
perror("bind");
return -1;
}
printf("bind success.\n");
addr_len = sizeof(ser_cin);
ret = recvfrom(s_fd, cli_recbuf, MAX_REC, 0, (struct sockaddr *)&ser_cin, &addr_len);
printf("服务器成功接收了%d个字节\n", ret);
printf("服务器接收的内容是:%s\n", cli_recbuf);
inet_ntop(AF_INET, &ser_cin.sin_addr, ipbuf,sizeof(ipbuf));
printf("ip地址是:%s\n", ipbuf);
ret = sendto(s_fd, ser_senbuf, strlen(ser_senbuf), 0, (const struct sockaddr *)&ser_cin, addr_len);
printf("服务器成功发送了%d个字符\n", ret);
printf("服务器发送的内容是:%s\n", ser_senbuf);
return 0;
}*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
相关推荐
UDP数据报与TCP传输应用系统的层间接口设计
嵌入式项目中,UDP与TCP该怎么选?
详解TCP协议三次握手全过程
图解TCP、UDP,流量控制,拥塞控制,一次看懂
基于LabVIEW FPGA的数据传输技术
局域网UDP收发程序
UDP实现可靠性传输
小型无人机交通辅助系统
国嵌应用班-7-4(UDP网络程序设计)
GSMGPRS通信在配电自动化系统中的应用
基于FPGA和Qt技术的音频广播系统
图解TCP和UDP协议的原理和区别
TCP UDP测试工具
LabViewFPGA数据传输技术
TCP UDP通用测试软件
声纳信号处理中UDP协议数据传输研究与设计
FPGA平台的实时全景视频系统设计
VHDL语言_用户定义的原语(第六章)
基于FPGA的UDP硬件发送模块设计与实现
嵌入式TCP/IP协议栈在单片机上的实现