一、客户端

#include<sys/types.h>

#include<sys/socket.h>

#include<netinet/in.h>

#include<arpa/inet.h>

#include<unistd.h>

#include<stdio.h>

#include<errno.h>

#include<time.h>

#include<string.h>

void main()

{

  char send_data[20]="im sender data";

  int fd;

  struct sockaddr_in local_addr,to_addr;

  fd=socket(AF_INET,SCOK_DGRAM,0);

  if(fd<0)

  {

    printf("create socket error");

    return;

  }

  local_addr.sin_family=AF_INET;

  local_addr.sin_port=htons(7777);

  local_addr.sin_addr.s_addr=INADDR_ANY;

  to_addr.sin_family=AF_INET;

  to_addr.sin_port=htons(8888);

  to_addr.sin_addr.s_addr=INADDR_ANY;

  if(-1 == bind(fd,(struct sockaddr*)&local_addr,sizeof(local_addr)))

  {

  printf("bind error\n);

  close(fd);

  return;

  }

  printf("bind success");

  while(1)

  {

  sleep(1);

  if(-1 != sendto(fd,send_data,sizeof(send_data),0,(struct sockaddr*)&to_addr,sizeof(to_addr)))

    printf("send success\n");

  else

    printf("send error\n");

  }

}

二、服务器

#include<sys/types.h>

#include<sys/socket.h>

#include<netinet/in.h>

#include<arpa/inet.h>

#include<unistd.h>

#include<stdio.h>

#include<errno.h>

#include<time.h>

#include<string.h>

void main()

{

  int fd;

  int n;

  char rcv_buf[256];

  socklen_t servlen;

  struct sockaddr_in from_addr,temp_addr;

  fd=socket(AS_INET,SOCK_DGRAM,0);

  if(fd<0)

  {  

  printf("create socket error");

  return;

  }

  from_addr.sin_family=AF_INET;

  from_addr.sin_port=htons(8888);

  from_addr.sin_addr.s_addr=INADDR_ANY;

  servlen=sizeof(tem_addr);  

  if(-1 == bind(fd,(struck sockaddr*)&from_addr,sizeof(struck sockaddr_in)))

  {

  printf("bind error");

  return;

  }

  while(1)

  {

  bzero(rcv_buf,256);

  n=rcvfrom(fd,rcv_buf,256,0,(struct sockaddr*)&temp_addr,&servlen);

  rcv_buf[n]=0;

  printf("rcvdata:%s\n",rcv_buf);

  }

}

ps:

1、unsigned short int htons(unsigned short int hostshort);将参数指定的16位hostshort转换成网络字符顺序。

2、int inet_aton(const char * cp,struct in_addr *inp);将参数cp所指的网络地址字符串转换成网络使用的二进制的数字, 然后存于参数inp所指的in_addr结构中。

linux+udp+server+client的更多相关文章

  1. 使用epoll实现一个udp server && client

    udp server #!/usr/bin/env python #-*- coding:utf-8 -*- import socket import select import Queue #创建s ...

  2. UDP server & client

    Server: import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; ...

  3. UDP client,UDP server, TCP server, TCP client

    UDP server import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocke ...

  4. uip UDP server广播模式(client能够随意port,而且主动向client发送数据)

    眼下移植uip,发现UDP server模式下,必须指定本地port以及clientport,否则仅仅能讲clientport设置为0,才干接收随意port的数据,可是无法发送数据,由于此时clien ...

  5. TCP/UDP Socket调试工具提供了TCP Server,TCP Client,UDP Server,UDP Client,UDP Group 五种Socket调试方案。

    一.TCP通信测试: 1)   创建TCP Server: 选中左方的TCP Server, 然后点击”创建”按钮,软件弹出监听端口输入框 输入监听端口后,即创建了一个在指定端口上进行监听的TCP S ...

  6. linux c server and client 简单的通信

    server.c #include <stdlib.h> #include <stdio.h> #include <errno.h> #include <st ...

  7. TCP/UDP server

    Simple: Sample TCP/UDP server https://msdn.microsoft.com/en-us/library/aa231754(v=vs.60).aspx Simple ...

  8. epoll简介 与 UDP server的实现

    Abstractepoll是Linux内核为处理大批量句柄而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系 ...

  9. LVS : Linux Virtual Server 负载均衡,集群,高并发,robust

    1 LVS : Linux Virtual Server http://www.linuxvirtualserver.org/ http://www.linuxvirtualserver.org/zh ...

随机推荐

  1. makefile编写---单个子目录编译自动变量模板ok

    1.自动化变量通配符http://blog.sina.com.cn/s/blog_7c95e5850101b38l.html 2.wildcard 使用http://blog.csdn.net/lia ...

  2. il code swtich

    public enum RangeItemType { CompanyPicker = 1, //公司STR_COMPANY BrDivPicker = 2, //分行STR_BRDIV Depart ...

  3. day2 python基础 while 循环补充

    一.上节内容回顾 二.pycharm安装. 安装好以后激活方法:直接打开pycharm,选License server激活,输入:http://idea.imsxm.com 三.补充知识:如果字符串本 ...

  4. mac中一一些常用的命令

    本文转载至 http://blog.csdn.net/chen505358119/article/details/9244701   这里主要讲的是mac中的一些命令,怕忘记了所以记在这里. 1.首先 ...

  5. 【BZOJ1923】[Sdoi2010]外星千足虫 高斯消元

    [BZOJ1923][Sdoi2010]外星千足虫 Description Input 第一行是两个正整数 N, M. 接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结果.每行 ...

  6. Reverse and Compare(DP)

    Reverse and Compare Time limit : 2sec / Memory limit : 256MB Score : 500 points Problem Statement Yo ...

  7. 扩展类 HOW TO EXTEND CLASSES TO MAKE NEW CLASSES IN PYTHON

    How to Extend Classes to Make New Classes in Python - dummies https://www.dummies.com/programming/py ...

  8. spring cloud 微服务应用间通讯

    SpringCloud 应用间通信基于HTTP的Restful调用方式有两种,RestTemplate与Feign. 1.RestTemplate应用间通讯 通过 @LoadBalanced,可在re ...

  9. JavaScript数据结构与算法-队列练习

    队列的实现 // 队列类 function Deque () { this.dataStore = []; this.enqueueFront = enqueueFront; this.enqueue ...

  10. C#反射Assembly 详细说明(转)

    1.对C#反射机制的理解2.概念理解后,必须找到方法去完成,给出管理的主要语法3.最终给出实用的例子,反射出来dll中的方法 反射是一个程序集发现及运行的过程,通过反射可以得到*.exe或*.dll等 ...