UDP网络程序设计

udp_server
#include<stdio.h>
#include<sys/socket.h>
#include<string.h>
#include<netinet/in.h>
#define portnum 3333
void main()
{
int n,addrlen;
char buffer[128];
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
int sockfd;
//1创建套接字
sockfd=socket(AF_INET,SOCK_DGRAM,0)
//2.1设置地址
bzero(&server_addr,sizeof(struct sockaddr_in));
server_addr.sin_family=AF_INET; //IPV4协议族
server_addr.sin_port=htons(portnum);
server_addr.sin_addr.s_addr=htonl(INADDR_ANY);
//2绑定地址
bind(sockfd, (struct sockaddr *)(&server_addr),sizeof(struct sockaddr));
//3接收数据
while(1)
{
addrlen=sizeof(struct sockaddr);
bzero(buffer,sizeof(buffer));
n= recvfrom(sockfd,buffer,128,0,(struct sockaddr *)(&client_addr),&addrlen);
buffer[n]=0; //0是字符串的结束符
printf("server received :%s\n ",buffer);
}
//4结束连接
close(sockfd);
}
udp_client
#include<stdio.h>
#include<sys/socket.h>
#include<string.h>
#include<netinet/in.h>
#define portnum 3333
#define BUF_SIZE 128
int main(int argc, char **argv)
{
char buffer[BUF_SIZE];
struct sockaddr_in server_addr;
int sockfd;
if(argc!=2)
{
printf("usage:%s server_ip\n",argv[0]);
exit(1);
}
//1创建套接字
sockfd=socket(AF_INET,SOCK_DGRAM,0)
//2.1设置地址
bzero(&server_addr,sizeof(struct sockaddr_in));
server_addr.sin_family=AF_INET; //IPV4协议族
server_addr.sin_port=htons(portnum);
server_addr.sin_addr.s_addr=htonl(INADDR_ANY);
inet_aton(argv[1],&server_addr.sin_addr);
//2发送数据
while(1)
{
printf("please input char:\n");
fgets(buffer,128,stdin);
sendto(sockfd,buffer,strlen(buffer),0, (struct sockaddr *)(&server_addr),sizeof(struct sockaddr));
bzero(buffer,sizeof(buffer));
}
//3关闭连接
close(sockfd);
return 0;
}
UDP网络程序设计的更多相关文章
- [国嵌攻略][092][UDP网络程序设计]
server.c #include <sys/socket.h> #include <netinet/in.h> #include <strings.h> #inc ...
- UDP网络程序模型设计
UDP网络程序设计 1. UDP网络编程模型程序初始化 1.1服务器使用的函数 创建socket----->socket 绑定地址-------->bind 接受数据--------> ...
- Java基础知识笔记(六:网络程序设计)
一.统一资源定位地址(URL) (1)网络地址 在网络上,计算机是通过网络地址标识.网络地址通常有两种表示方法,第一种表示方法通常采用4个整数组成,例如: 166.111.4.100表示某一网站服务器 ...
- C#网络程序设计(1)网络编程常识与C#常用特性
网络程序设计能够帮我们了解联网应用的底层通信原理! (1)网络编程常识: 1)什么是网络编程 只有主要实现进程(线程)相互通信和基本的网络应用原理性(协议)功能的程序,才能算是真正的网 ...
- UDP通讯程序设计
UDP通讯程序设计 一.函数化 1.1服务器使用的函数 创建socket----->socket 绑定地址-------->bind 接受数据-------->recvfrom 发送 ...
- JAVA UDP网络编程学习笔记
一.UDP网络编程概述 采用TCP协议通信时,客户端的Socket必须先与服务器建立连接,连接建立成功后,服务器端也会持有客户端连接的Socket,客户端的Socket与服务器端的Socket是对应的 ...
- unix域套接字UDP网络编程
unix域套接字UDP网络编程,服务器如下面: #include <stdio.h> #include <stdlib.h> #include <string.h> ...
- VC++ UDP网络控制台程序
采用的是VC2008,控制台应用程序,使用UDP编写. 1.服务端代码 //UDPServer.cpp #include <WinSock2.h> #include <stdio. ...
- UDP网络程序实例
根据前面所讲的网络编程的基础知识,以及UDP网络编程的特点,下面创建一个广播数据报程序.广播数据报是一种较新的技术,类似于电台广播,广播电台需要在指定的波段和频率上广播信息,收听者也要将收音机调到指定 ...
随机推荐
- Etcd 使用入门
etcd简介 etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库.etcd内部采用raft协议作为一致性算法,etcd基于Go语 ...
- CentOS7安装MySQL(完整版)
在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 1 下载并安装MySQL官方的 Yum Re ...
- Mysql表字段命令alter add
alter add命令用来增加表的字段. alter add命令格式:alter table 表名 add字段 类型 其他; 例如,在表MyClass中添加了一个字段passtest,类型为int(4 ...
- 数据分析 之 NumPy
目录 简单了解数据分析 Python数据分析三剑客(Numpy,Pandas,Matplotlib) 简单使用np.array() 使用np的routines函数创建数组 ndarray N维数组对象 ...
- 图说jdk1.8新特性(4)--- stream
总述 jdk1.8引入了Stream相关的API,通过该API.可以实现流式编程,使你写代码的时候行云流水 Stream使得集合的转换变得更加简单,原来可能需要写多个for循环或者多个if判断的,直接 ...
- leetcode 学习心得 (3)
源代码地址:https://github.com/hopebo/hopelee 语言:C++ 517. Super Washing Machines You have n super washing ...
- Class.getDeclaredFields()和Class.getFields()的区别。 Class.getMethods()和Class.getDeclaredMethods()的区别。
package www.cn.extend; /** Animal * 2019/07/04 * @author Administrator * */ public class Animal { pu ...
- 【Spring Boot】Spring Boot之自定义拦截器
一.拦截器的作用 将通用的代码抽取出来,达到复用的效果.比如可以用来做日志记录.登录判断.权限校验等等 二.如何实现自定义拦截器 1)创建自定义拦截器类并实现HandlerInterceptor类 / ...
- js 判断浏览器是pc端还是移动端
if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) { //说明是移动端 } else { //说明是pc端 }
- SpringCloud2.0 Hystrix Dashboard 断路器指标看板 基础教程(八)
1.启动基础工程 1.1.启动[服务中心]集群,工程名称:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) ...