您的位置:首页 > 理论基础 > 计算机网络

Go 网络编程笔记

2015-10-07 17:29 701 查看
前言: 本文是学习<<go语言程序设计>> -- 清华大学出版社(王鹏 编著) 的2014年1月第一版 做的一些笔记 , 如有侵权, 请告知笔者, 将在24小时内删除, 转载请注明出处!

1. 标准库中提供net包, 支持基于网络层(IP),传输层(TCP/UDP) 以及应用层(如HTTP,FTP,SMTP) 的网络通信.

2. IP 地址和域名解析

  - IP地址类型: type IP[] byte

    - 常用函数

      - func ParseIP(s string) IP 验证IP的合法性, 返回IP地址对象或 nil.

      - func (ip IP) String() string 将IPv4转换成点分十进制格式的字符串, IPv6转换成冒号分隔的简写字符串.

package main

import (
"fmt"
"net"
"os"
)

func checkError(err error) {
if err != nil {
fmt.Fprintf(os.Stderr, "Fatal Error: %s", err.Error())
os.Exit(1)
}
}

func main() {
lAddr, err := net.ResolveIPAddr("ip4", "127.0.0.1")
checkError(err)
name, err := os.Hostname()
checkError(err)
rAddr, err := net.ResolveIPAddr("ip4", name)
checkError(err)
conn, err := net.DialIP("ip4:ip", lAddr, rAddr)
checkError(err)
_, err = conn.WriteToIP([]byte("Hello Server!"), rAddr)
checkError(err)
var buf [512]byte
n, addr, err := conn.ReadFromIP(buf[0:])
checkError(err)
fmt.Println("Reply from server:", addr.String(), " #", string(buf[0:n]))
conn.Close()
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: