udp与tcp的不同在于客户端请求方式不同,udp缺少Accept函数。

一个简单的udp客户端:

package main;

import (
"net"
"log"
"fmt"
) func chkError(err error) {
if err != nil {
log.Fatal(err);
}
} func main() {
//获取udpaddr
udpaddr, err := net.ResolveUDPAddr("udp4", "127.0.0.1:8080");
chkError(err);
//连接,返回udpconn
udpconn, err2 := net.DialUDP("udp", nil, udpaddr);
chkError(err2);
//写入数据
_, err3 := udpconn.Write([]byte("client\r\n"));
chkError(err3);
buf := make([]byte, 256);
//读取服务端发送的数据
_, err4 := udpconn.Read(buf);
chkError(err4);
fmt.Println(string(buf));
}

udp服务端代码:

package main;

import (
"net"
"log"
"fmt"
) func chkError(err error) {
if err != nil {
log.Fatal(err);
}
} func clientHandle(conn *net.UDPConn) {
defer conn.Close();
buf := make([]byte, 256);
//读取数据
//注意这里返回三个参数
//第二个是udpaddr
//下面向客户端写入数据时会用到
_, udpaddr, err := conn.ReadFromUDP(buf);
if err != nil {
return;
}
fmt.Println(string(buf));
conn.WriteToUDP([]byte("hello,client \r\n"), udpaddr);
} func main() {
udpaddr, err := net.ResolveUDPAddr("udp4", "127.0.0.1:8080");
chkError(err);
//监听端口
udpconn, err2 := net.ListenUDP("udp", udpaddr);
chkError(err2);
//udp没有对客户端连接的Accept函数
for {
clientHandle(udpconn);
}
}

go语言net包udp socket的使用的更多相关文章

  1. android firmware 利用UDP socket发送Magic Packet--c语言版本

    android firmware 利用UDP socket发送Magic Packet 1 Magic Packet格式: 6个0xFF + 16个Dst Mac Address 2 代码需要设置目的 ...

  2. iOS Socket编程-C语言版(UDP)

    . UDP Socket编程 先讲一讲UDP编程,因为比TCP要简单多了.首先,我们需要明白UDP是用户数据报协议,英文名为User Datagram Protocol,它是面向无连接的. 注意:So ...

  3. Windows UDP socket recvfrom返回10054错误的解决办法

    现象: 在Windows 7系统上,A使用UDP socket,调用sendto函数向一个目标地址B发送数据,但是目标地址B没有接收数据,如果A此时立即调用recvfrom试图接收目标地址B发回的数据 ...

  4. TCP/UDP socket

    TCP socket:有链接,绑定端口,接着去侦听,若有请求,那么accept(),获得新的socket,并且去接收/发送数据报. UDP socket:无连接,不需要侦听,也不用一个新的socket ...

  5. c#和UDP SOCKET广播

    server:  Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,ProtocolType.Udp); // ...

  6. Linux编程之UDP SOCKET全攻略

    这篇文章将对linux下udp socket编程重要知识点进行总结,无论是开发人员应知应会的,还是说udp socket的一些偏僻知识点,本文都会讲到.尽可能做到,读了一篇文章之后,大家对udp so ...

  7. 项目总结22:Java UDP Socket数据的发送和接收

    项目总结22:Java UDP Socket数据的发送和接收 1-先上demo 客户端(发送数据) package com.hs.pretest.udp; import java.io.IOExcep ...

  8. Linux C++ UDP Socket通信实例

    环境:Linux 语言:C++ 通信方式:UDP 服务器端的步骤如下: 1. socket:      建立一个socket 2. bind:          将这个socket绑定在某个端口上(A ...

  9. 【转】Linux编程之UDP SOCKET全攻略

    转自:http://www.cnblogs.com/skyfsm/p/6287787.html?utm_source=itdadao&utm_medium=referral 这篇文章将对lin ...

随机推荐

  1. The Roadmap of my web learning.

  2. 【389】Implement N-grams using NLTK

    Ref: Natural Language Toolkit Ref: n-grams in python, four, five, six grams? Ref: "Elegant n-gr ...

  3. 获取jdk支持的编码类型

    //获取jdk支持的编码类型 Map<String,Charset> maps = Charset.availableCharsets(); for(Map.Entry<String ...

  4. LINUX系统一一常用命令

    前言 LINUX UNIX Centos RedHat Ubuntu SHELL shell脚本 shell shell命令 类似windows系统的bat 批处理文件 里面都是脚本 CentOS6. ...

  5. Hibernate学习笔记2.1(Hibernate基础配置)

    Hibernate基础配置 1.<property name="hbm2ddl.auto">update</property> 在SessionFactor ...

  6. 有关于分布式和SOA的理解

    我的理解分布式和SOA都差不多,类似功能独立分开.举个例子,做一辆车,按照传统模式,先生产车架,然后生产车轮..然后一辆车完成.现在分布式就是生产车架与生产车轮分离,所有的材料 就是最后一次组装的时候 ...

  7. Pandas数据存取

    pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA']) Pandas数据存取 Pandas可以存取多种介质类型数据, ...

  8. 学JS的心路历程-函式(六)其余参数及预设参数

    今天我们要来介绍ES6新增的其余参数及预设参数! 其余参数rest parameter …numbers可以让我们表示不确定数量的参数,并将其视为一个数组: function getVal(…numb ...

  9. vue pros 子组件接收父组件传递的值

    1.子组件 ItemTemplate.vue <template> <div class="item"> <li v-for="pdata ...

  10. Displacement Mapping

    [Displacement Mapping] Displacement Mapping(移位贴图). Normal maps的另一个应用是displacement mapping,在这个应用中,细节的 ...