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. U3D MemoryProfiler

    MemoryProfiler Unity 5.3a4 has a new very lowlevel memory profiler API. It can tell you which object ...

  2. 钩子函数mounted:

    1.钩子函数 钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息.事件进行过滤,访问在正常情况下无法访问的消息.钩子的本质是一段用以处理系统消息的程序,通过 ...

  3. 6.面向对象 -类.md

    目录 1. static: 2. 类在内存中,每一个类在创建在栈内存中,当创建一个对象的时候,将非类变量再堆内存中创建,而类变量是不会因为创建对象而在堆中重新创建 3. 对象.引用和指针: 4. 类名 ...

  4. C++ MFC常用函数(转)

    WinExec() ExitWindowsEx() GlobalMemoryStatus() GetSystemInfo() GetSystemDirectory() GetWindowsDirect ...

  5. 吴裕雄 01-mysql管理

    SHOW DATABASES; update user set authentication_string = password("123456") where user='roo ...

  6. OCR技术浅探(转)

    网址:https://spaces.ac.cn/archives/3785 OCR技术浅探 作为OCR系统的第一步,特征提取是希望找出图像中候选的文字区域特征,以便我们在第二步进行文字定位和第三步进行 ...

  7. Applese的毒气炸弹-最小生成树Kruskal算法

    链接:https://ac.nowcoder.com/acm/contest/330/G来源:牛客网 题目描述 众所周知,Applese 是个很强的选手,它的化学一定很好. 今天他又AK了一套题觉得很 ...

  8. Python列表推导式

  9. yii gii配置ip限制使用gii

    <?php $config = [ 'components' => [ 'request' => [ // !!! insert a secret key in the follow ...

  10. work单进程群发通知 后面会增加Channel组件的分组推送以及集群推送篇章

    <?phpuse Workerman\Worker;use Workerman\Lib\Timer; require_once '../../web/Workerman/Autoloader.p ...