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网络编程的特点,下面创建一个广播数据报程序.广播数据报是一种较新的技术,类似于电台广播,广播电台需要在指定的波段和频率上广播信息,收听者也要将收音机调到指定 ...
随机推荐
- 解决h5版的uniapp请求跨域问题
uni项目里有个名为manifest.json文件 编辑manifest.json文件,找到h5选项,里面一般有个名为“devServer”索引,往这个索引中添加一个“proxy”或者编辑,值为请求域 ...
- springboot IDEA新建Maven项目的Plugins出现红线的解决方法
将pom.xml文件copy到桌面,删除项目中的pom.xml.发现项目maven中没有任何东西后,然后将桌面的pom.xml粘贴到项目目录下,刷新maven就ok了
- 07、MySQL—时间日期类型
时间日期类型 1.Date 日期类型:系统使用三个字节来存储数据,对应的格式为:YYYY-mm-dd,能表示的范围是从1000-01-01 到9999-12-12,初始值为0000-00-00 2.T ...
- 【开发笔记】- Java写入、读取文本
文本写入 public static void createFile(String input) throws IOException { //设置文件路径 String filePath = &qu ...
- vue生命周期小总结
beforeCreate:function(){} //组件实例化之前执行的函数 created:function(){} //组件实例化完毕,但是页面没有显示 beforeMount:functio ...
- DoNetCore Web Api 采用Swagger进行接口文档管理
第一步:创建API项目 步骤这里不说明 第二步:就是Nuget 包, 两种方式:1.工具->Nuget管理->程序包管理控制台 Install-Package Swashbuckle.As ...
- day 19 作业
今日作业 1.什么是对象?什么是类? 对象是特征与技能的结合体,类是一系列对象相同的特征与技能的结合体 2.绑定方法的有什么特点 由对象来调用称之为对象的绑定方法,不同的对象调用该绑定方法,则会将不同 ...
- golang面向对象实现
面向对象编程三大特点:封装.继承.多态. 1. 构造函数 Go不支持构造器.如果某类型的零值不可用,需要提供NewT(parameters)函数,用来初始化T类型的变量.按照Go的惯例,应该把创建T类 ...
- 排序接口与抽象类(java)
定义一个ISort接口,方法有升序(sortAsc),有降序(sortDesc),传入参数是一个实现Comparable接口的对象数组,即不仅仅只对数字排序,还定义了两个默认方法: compare方法 ...
- mac 使用 brew 安装 nginx 及各种命令
一.安装 brew install nginx 或 sudo brew install nginx 二.启动 brew services start nginx 或 sudo brew service ...