data.h

 #ifndef DATA_H
#define DATA_H
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <errno.h>
#define PORT 4578
#define maxn 100 #endif

server.c

 #include "data.h"
int main()
{
int sockfd;
struct sockaddr_in server;
struct sockaddr_in client;
socklen_t len;
int num;
char buf[maxn];
if((sockfd = socket(AF_INET,SOCK_DGRAM,)) == -)
{
fprintf(stderr,"socket fail,error:%s\n",strerror(errno));
return -;
}
bzero(&server,sizeof(server));
server.sin_family = AF_INET;
server.sin_port = htons(PORT);
server.sin_addr.s_addr = htonl(INADDR_ANY);
if(bind(sockfd,(struct sockaddr*)&server,sizeof(server)) == -)
{
fprintf(stderr,"bind fail,error:%s\n",strerror(errno));
return -;
}
len = sizeof(client);
bzero(&buf,sizeof(buf));
while()
{
num = recvfrom(sockfd,buf,maxn,,(struct sockaddr*)&client,&len);
if(num < )
{
perror("recvfrom() error!\n");
exit();
}
num--;
buf[num] = '\0';
printf("You got a message <%s> from client.\n",buf);
printf("It is ip is %s,port is %d.\n",
inet_ntoa(client.sin_addr), htons(client.sin_port));
sendto(sockfd,buf,strlen(buf),,(struct sockaddr*)&client,len);
if(!strcmp(buf,"bye"))
break;
}
close(sockfd); }

client.c

#include "data.h"
int main()
{
int sockfd,num;
char sendbuf[maxn];
char recvbuf[maxn];
struct sockaddr_in server;
struct sockaddr_in peer;
if((sockfd = socket(AF_INET,SOCK_DGRAM,)) == -)
{
fprintf(stderr,"socket fail,error %s\n",strerror(errno));
exit();
}
bzero(&server,sizeof(server));
server.sin_family = AF_INET;
server.sin_port = htons(PORT);
server.sin_addr.s_addr = inet_addr("127.0.0.1");
bzero(&sendbuf,sizeof(sendbuf));
bzero(&recvbuf,sizeof(recvbuf));
while(fgets(sendbuf,sizeof(sendbuf),stdin) != NULL)
{
int tt = strlen(sendbuf);
sendto(sockfd,sendbuf,tt,,(struct sockaddr*)&server,sizeof(server));
socklen_t len;
recvfrom(sockfd,recvbuf,maxn,,NULL,NULL);
printf("receive message is :");
fputs(recvbuf,stdout);
printf("\n");
bzero(&sendbuf,sizeof(sendbuf));
bzero(&recvbuf,sizeof(recvbuf));
}
close(sockfd);
return ;
}

运行结果:

基于UDP套接字编程实例的更多相关文章

  1. 探索UDP套接字编程

    UDP和TCP处于同一层网络模型中,也就是运输层,基于二者之上的应用有很多,常见的基于TCP的有HTTP.Telnet等,基于UDP有DNS.NFS.SNMP等.UDP是无连接,不可靠的数据协议服务, ...

  2. 【转】 探索UDP套接字编程

    UDP和TCP处于同一层网络模型中,也就是运输层,基于二者之上的应用有很多,常见的基于TCP的有HTTP.Telnet等,基于UDP有DNS.NFS.SNMP等.UDP是无连接,不可靠的数据协议服务, ...

  3. 【Python网络编程】利用Python进行TCP、UDP套接字编程

    之前实现了Java版本的TCP和UDP套接字编程的例子,于是决定结合Python的学习做一个Python版本的套接字编程实验. 流程如下: 1.一台客户机从其标准输入(键盘)读入一行字符,并通过其套接 ...

  4. JavaTCP和UDP套接字编程

    在我们刚开始入门Java后端的时候可能你会觉得有点复杂,包含了很多杂七杂八的知识,例如文件上传下载,监听器,JDBC,请求重定向,请求转发等等(当然也没有很多),但是我们自己真正的去开发一个小型网站( ...

  5. 计算机网络实验 UDP套接字编程

    这是个傻瓜式操作教程 西科大计算机网络实验 UDP套接字编程 我用自己的Ubuntu16.04来举例,实验室的是虚拟机,差不多 只针对第三个题目,修改服务器来通过响应客户端发送的GetTime并发送给 ...

  6. UDP套接字编程 返回系统时间

    计算机网络实验 简单UDP套接字编程 这是学校老师自己改进了一点的题目.我预习了好久才搞明白,同学来问的时候,一大堆简单问题实在是不想回答...所以,这时候我觉得博客是个好东西! 我的任务是做客户端和 ...

  7. 【Unix网络编程】chapter8基本UDP套接字编程

    chapter8基本UDP套接字编程 8.1 概述 典型的UDP客户端/服务端的函数调用 8.2 recvfrom和sendto函数 #include <sys/socket.h> ssi ...

  8. TCP和UDP套接字编程 (java实现)

    在了解网络编程之前,我们先了解一下什么叫套接字 套接字即指同一台主机内应用层和运输层之间的接口 由于这个套接字是建立在网络上建立网络应用的可编程接口 因此也将套接字称为应用程序和网络之间的应用程序编程 ...

  9. 《Unix 网络编程》08:基本UDP套接字编程

    基本UDP套接字编程 系列文章导航:<Unix 网络编程>笔记 UDP 概述 流程图 recvfrom 和 sendto #include <sys/socket.h> ssi ...

随机推荐

  1. SPOJ8222/NSUBSTR:Substrings——题解

    https://www.luogu.org/problemnew/show/SP8222#sub http://www.spoj.com/problems/NSUBSTR/ 翻译来自洛谷. 你得到一个 ...

  2. 【贪心】【P2117】小Z的矩阵

    传送门 Description 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1, 当然询问一个矩阵的G值实在是太简单了.小Z在给出一个N*N矩 ...

  3. 怎样去面试JavaScript开发者

    面试 Javascript 工程师难吗?Javascript 工程师的水平参差不齐,如何评定他们技术水平的高低?如何确定 Javascript 工程师适合承担哪方面的任务?我在腾讯时的面试经验是,通过 ...

  4. js正则表达式,判断字符串是否以数字组结尾,并取出结尾的数字

    js正则表达式,判断字符串是否以数字组结尾,并取出结尾的数字 <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  5. HDU4305:Lightning(生成树计数+判断点是否在线段上)

    Lightning Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. 清除windows系统垃圾文件简易脚本(bat)

    @echo off      echo 正在清除系统垃圾文件,请稍等......      del /f /s /q %systemdrive%\*.tmp      del /f /s /q %sy ...

  7. arm架构与体系结构

    1.cpu与soc 内核版本号与soc版本号由arm公司确定. 芯片型号由各半导体公司确定. soc包括cpu与一些基本内设.(一般提到CPU都指的是soc,实际上cpu只是soc的一部分). RIS ...

  8. php环境的安装

    一.xampp的安装 1.下载xampp安装包. 2.next下一步傻瓜式的安装. 3.输入地址127.0.0.1进入如下页面. 二.LAMP环境的安装

  9. vijos 1066 弱弱的战壕 树状数组

    描述 永恒和mx正在玩一个即时战略游戏,名字嘛~~~~~~恕本人记性不好,忘了-_-b. mx在他的基地附近建立了n个战壕,每个战壕都是一个独立的作战单位,射程可以达到无限(“mx不赢定了?!?”永恒 ...

  10. HDU 5869 Different GCD Subarray Query 树状数组+离线

    Problem Description This is a simple problem. The teacher gives Bob a list of problems about GCD (Gr ...