- /** * Created by Administrator on 13-12-9. */
- package main
-
- import (
- "fmt"
- "os"
- "net"
- )
-
- /** * 将string类型的ip地址转换为IP对象 */
- func main() {
-
- name := "192.168.1.97"
-
- ip := net.ParseIP(name)
-
- if ip == nil {
- fmt.Fprintf(os.Stderr,"Err:无效的地址")
- return
- }
-
- fmt.Fprintf(os.Stdout,"IP: %s %s\n",ip,ip.String())
- defaultMask := ip.DefaultMask()
- fmt.Fprintf(os.Stdout,"DefaultMask: %s %s\n",defaultMask,defaultMask.String())
-
- ones,bits := defaultMask.Size()
- fmt.Fprintf(os.Stdout,"ones: %d bits: %d\n",ones,bits)
- }
- /** * Created by Administrator on 13-12-9. */
- package main
-
- import (
- "net"
- "fmt"
- "os"
- )
-
- /** * 根据IP和掩码获得网络 */
- func main() {
- name := "192.168.1.97"
-
- ip := net.ParseIP(name)
-
- mask := ip.DefaultMask()
-
- network := ip.Mask(mask)
-
- fmt.Fprintf(os.Stdout,"network: %s",network.String())
-
-
-
-
- }
- /** * Created by Administrator on 13-12-9. */
- package main
-
- import (
- "net"
- "fmt"
- "os"
- )
-
- /** * 将域名解析Ip地址 * 获得域名对应的所有Ip地址 */
- func main() {
-
- domain := "www.baidu.com"
- ipAddr,err := net.ResolveIPAddr("ip",domain)
- if err != nil {
- fmt.Fprintf(os.Stderr,"Err: %s",err.Error())
- return
- }
- fmt.Fprintf(os.Stdout,"%s IP: %s Network: %s Zone: %s\n",ipAddr.String(),ipAddr.IP,ipAddr.Network(),ipAddr.Zone)
-
-
- ns,err := net.LookupHost(domain)
- if err != nil {
- fmt.Fprintf(os.Stderr,err.Error())
- return
- }
-
- for _,n := range ns {
- fmt.Fprintf(os.Stdout,"%s",n)
- }
- }
- /** * Created by Administrator on 13-12-9. */
- package main
-
- import (
- "net"
- "fmt"
- "os"
- )
-
- /** * 查看主机服务器(service)占用的端口,这些服务,都是tcp或者udp的 */
- func main() {
-
- port,err := net.LookupPort("tcp","telnet")
-
- if err != nil {
- fmt.Fprintf(os.Stderr,"未找到指定服务")
- return
- }
-
- fmt.Fprintf(os.Stdout,"telnet port: %d",port)
-
- }
- /** * Created by Administrator on 13-12-9. */
- package main
-
- import (
- "net"
- "fmt"
- "os"
- )
-
- func main() {
-
-
-
-
- pTCPAddr,err := net.ResolveTCPAddr("tcp","www.baidu.com:80")
- if err != nil {
- fmt.Fprintf(os.Stderr,err.Error())
- return
- }
-
- fmt.Fprintf(os.Stdout,"www.baidu.com:80 IP: %s PORT: %d",pTCPAddr.IP.String(),pTCPAddr.Port)
- }
- package main
-
- import (
- "net"
- "fmt"
- "os"
- "io/IoUtil"
- )
-
- func main() {
-
- url := "www.baidu.com:80"
-
- pRemoteTCPAddr,err := net.ResolveTCPAddr("tcp4",url)
-
- if err != nil {
- fmt.Fprintf(os.Stderr,"Error: %s",err.Error())
- return
- }
-
- // pLocalTCPAddr,err := net.ResolveTCPAddr("tcp","127.0.0.1:7070")
-
- pTCPConn,err := net.DialTCP("tcp",nil,pRemoteTCPAddr)
-
- if err != nil {
- fmt.Fprintf(os.Stderr,err.Error())
- return
- }
-
-
- n,err := pTCPConn.Write([]byte("HEAD / HTTP/1.0\r\n\r\n"))
- if err != nil {
- fmt.Fprintf(os.Stderr,err.Error())
- return
- }
- defer pTCPConn.Close()
-
- fmt.Fprintf(os.Stdout,"writed: %d\n",n)
-
- buf,err := IoUtil.ReadAll(pTCPConn)
- r := len(buf)
- fmt.Fprintf(os.Stdout,string(buf[:r]))
- fmt.Fprintf(os.Stdout,"readed: %d\n",r)
-
- }
- /**
- * Created by Administrator on 13-12-10.
- */
- package main
-
- import (
- "net"
- "fmt"
- "os"
- "time"
- )
-
- func main() {
-
- pTCPAddr,error := net.ResolveTCPAddr("tcp4",":7070")
- if error != nil {
- fmt.Fprintf(os.Stdout,error.Error())
- return
- }
- pTCPListener,error := net.ListenTCP("tcp4",pTCPAddr)
- if error != nil {
- fmt.Fprintf(os.Stdout,error.Error())
- return
- }
- defer pTCPListener.Close()
-
- for {
- pTCPConn,error := pTCPListener.AcceptTCP()
- if error != nil {
- fmt.Fprintf(os.Stdout,error.Error())
- continue
- }
- go connHandler(pTCPConn)
- }
- }
-
- func connHandler(conn *net.TCPConn) {
- defer conn.Close()
- now := time.Now()
- conn.Write([]byte(now.String() + "\n"))
- }
- /**
- * Created by Administrator on 13-12-10.
- */
- package main
-
- import (
- "net"
- "fmt"
- "os"
- "time"
- )
-
- func main() {
-
- //url := "baidu.com:80"
- url := "facebook.com:80"
- conn,error := net.DialTimeout("tcp",url,time.Second * 10) // 带有超时限制的conn
- if error != nil {
- fmt.Fprintf(os.Stderr,error.Error())
- return
- }
-
- n,error := conn.Write([]byte("HEAD / HTTP/1.0\r\n\r\n"))
- if error != nil {
- fmt.Fprintf(os.Stderr,error.Error())
- return
- }
-
- fmt.Fprintf(os.Stdout,"writed: %d",n)
-
- buf := make([]byte,2048)
- n,error = conn.Read(buf)
- if error != nil {
- fmt.Fprintf(os.Stderr,string(buf[:n]))
- }
- /** * Created by Administrator on 13-12-10. */
- package main
-
- import (
- "net"
- "fmt"
- "os"
- )
-
- /** * UDP 服务器 */
- func main() {
- pUDPAddr,err := net.ResolveUDPAddr("udp",":7070")
-
- if err != nil {
- fmt.Fprintf(os.Stderr,err.Error())
- return
- }
-
- pUDPConn,err := net.ListenUDP("udp",pUDPAddr)
-
- if err != nil {
- fmt.Fprintf(os.Stderr,err.Error())
- return
- }
-
- defer pUDPConn.Close()
-
- for {
-
- buf := make([]byte,256)
- n,pUDPAddr,err := pUDPConn.ReadFromUDP(buf)
-
- if err != nil {
- fmt.Fprintf(os.Stderr,err.Error())
- return
- }
- fmt.Fprintf(os.Stdout,"readed: %d",n)
-
- n,err = pUDPConn.WriteToUDP(buf,pUDPAddr)
- if err != nil {
- fmt.Fprintf(os.Stderr,n)
- }
- }
- /** * Created by Administrator on 13-12-10. */
- package main
-
- import (
- "net"
- "fmt"
- "os"
- )
-
- /** * UDP 客户端 */
- func main() {
-
- pUDPAddr,"127.0.0.1:7070")
-
- if err != nil {
- fmt.Fprintf(os.Stderr,"Error ResolveUDPAddr: %s",err := net.DialUDP("udp",nil,"Error DialUDP: %s",err.Error())
- return
- }
-
- n,err := pUDPConn.Write([]byte("你好啊!!!"))
-
- if err != nil {
- fmt.Fprintf(os.Stderr,"Error WriteToUDP: %s",n)
-
- buf := make([]byte,1024)
- n,_,err = pUDPConn.ReadFromUDP(buf)
-
- if err != nil {
- fmt.Fprintf(os.Stderr,"Error ReadFromUDP: %s","readed: %d %s",n,string(buf[:n]))
- }
- /** * Created by Administrator on 13-12-10. */
- package main
-
- import (
- "net"
- "fmt"
- "os"
- )
-
- func main() {
-
- lsr,err := net.Listen("tcp",err.Error())
- return
- }
-
- for {
- conn,err := lsr.Accept()
- if err != nil {
- fmt.Fprintf(os.Stderr,err.Error())
- continue
- }
-
- go connHandler(conn)
-
- }
-
- fmt.Println("Done !")
- }
-
- func connHandler(conn net.Conn) {
- defer conn.Close()
-
- var buf[512]byte
- for {
- n,err := conn.Read(buf[0:])
- if err != nil {
- fmt.Fprintf(os.Stderr,err.Error())
- return
- }
- _,err = conn.Write(buf[0:n])
- if err != nil {
- fmt.Fprintf(os.Stderr,err.Error())
- return
- }
- }
- }
- /** * Created by Administrator on 13-12-10. */
- package main
-
- import (
- "net"
- "fmt"
- "os"
- "bufio"
- )
-
- func main() {
-
- conn,err := net.Dial("tcp","192.168.1.97:7070")
- if err != nil {
- fmt.Sprint(os.Stderr,err.Error())
- return
- }
-
-
- go func() {
- var buf [512]byte
- for {
- n,err := conn.Read(buf[0:])
- if err != nil {
- fmt.Fprintf(os.Stderr,err.Error())
- return
- }
- fmt.Fprintf(os.Stdout,string(buf[0:n]))
- }
-
- }()
-
- for {
- fmt.Fprintf(os.Stdout,"\n输入:")
- pReader := bufio.NewReader(os.Stdin)
- line,err := pReader.ReadLine()
- if err != nil {
- fmt.Fprintf(os.Stderr,err.Error())
- return
- }
- conn.Write(line[0:])
- }
- }
- /** * Created by Administrator on 13-12-10. */
- package main
-
- import (
- "net"
- "fmt"
- "os"
- )
-
- /** UDP Server */
- func main() {
-
- packetConn,err := net.ListenPacket("udp",":7070")
-
- if err != nil {
- fmt.Fprintf(os.Stdout,err.Error())
- return
- }
- defer packetConn.Close()
-
- var buf [512]byte
- for {
- n,addr,err := packetConn.ReadFrom(buf[0:])
- if err != nil {
- fmt.Fprintf(os.Stdout,err.Error())
- return
- }
-
- fmt.Fprintf(os.Stdout,"recv: %s",string(buf[0:n]))
-
- _,err = packetConn.WriteTo(buf[0:n],addr)
- if err != nil {
- fmt.Fprintf(os.Stdout,err.Error())
- return
- }
- }
-
-
- }
- /** * Created by Administrator on 13-12-10. */
- package main
-
- import (
- "net"
- "fmt"
- "os"
- "time"
- )
-
- /** UDP Client */
- func main() {
- conn,err := net.Dial("udp","127.0.0.1:7070")
-
- if err != nil {
- fmt.Fprintf(os.Stdout,err.Error())
- return
- }
-
- defer conn.Close()
-
-
- _,err = conn.Write([]byte("你好啊UDP"))
- if err != nil {
- fmt.Fprintf(os.Stdout,err.Error())
- return
- }
-
- var buf [512]byte
- conn.SetReadDeadline(time.Now().Add(time.Second * 1))
- n,err := conn.Read(buf[0:])
- if err != nil {
- fmt.Fprintf(os.Stdout,string(buf[0:n]))
-
- }
转自:http://blog.csdn.net/eclipser1987/article/details/17247519?hmsr=studygolang.com&utm_medium=studygolang.com&utm_source=studygolang.com