net包

  1. **  
  2.  * Created by Administrator on 13-12-9.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "fmt"  
  8.     "os"  
  9.     "net"  
  10. )  
  11.   
  12. /**  
  13.  * 将string类型的ip地址转换为IP对象  
  14.  */  
  15. func main() {  
  16.   
  17.     name := "192.168.1.97"  
  18.   
  19.     ip := net.ParseIP(name)  
  20.   
  21.     if ip == nil {  
  22.         fmt.Fprintf(os.Stderr, "Err:无效的地址")  
  23.         return  
  24.     }  
  25.   
  26.     fmt.Fprintf(os.Stdout, "IP: %s %s\n", ip, ip.String())  
  27.     defaultMask := ip.DefaultMask()  
  28.     fmt.Fprintf(os.Stdout, "DefaultMask: %s %s\n", defaultMask, defaultMask.String())  
  29.   
  30.     ones, bits := defaultMask.Size()  
  31.     fmt.Fprintf(os.Stdout, "ones: %d bits: %d\n", ones, bits)  
  32. }  
  33. /**
     * 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)
    }
    




  1. /**  
  2.  * Created by Administrator on 13-12-9.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "net"  
  8.     "fmt"  
  9.     "os"  
  10. )  
  11.   
  12. /**  
  13.  * 根据IP和掩码获得网络  
  14.  */  
  15. func main() {  
  16.     name := "192.168.1.97"  
  17.   
  18.     ip := net.ParseIP(name)  
  19.   
  20.     mask := ip.DefaultMask()  
  21.   
  22.     network := ip.Mask(mask)  
  23.   
  24.     fmt.Fprintf(os.Stdout, "network: %s", network.String()) // 192.168.1.0  
  25.   
  26.     // ip:      192.168.1.97  
  27.     // mask:    255.255.255.0  
  28.     // network: 192.168.1.0  
  29. }  
/**
 * 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()) // 192.168.1.0

	// ip: 		192.168.1.97
	// mask:	255.255.255.0
	// network:	192.168.1.0
}




  1. /**  
  2.  * Created by Administrator on 13-12-9.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "net"  
  8.     "fmt"  
  9.     "os"  
  10. )  
  11.   
  12. /**  
  13.  * 将域名解析Ip地址  
  14.  * 获得域名对应的所有Ip地址  
  15.  */  
  16. func main() {  
  17.   
  18.     domain := "www.baidu.com"  
  19.     ipAddr, err := net.ResolveIPAddr("ip", domain)  
  20.     if err != nil {  
  21.         fmt.Fprintf(os.Stderr, "Err: %s", err.Error())  
  22.         return  
  23.     }  
  24.     fmt.Fprintf(os.Stdout, "%s IP: %s Network: %s Zone: %s\n", ipAddr.String(), ipAddr.IP, ipAddr.Network(), ipAddr.Zone)  
  25.   
  26.     // 百度,虽然只有一个域名,但实际上,他对应电信,网通,联通等又有多个IP地址  
  27.     ns, err := net.LookupHost(domain)  
  28.     if err != nil {  
  29.         fmt.Fprintf(os.Stderr, "Err: %s", err.Error())  
  30.         return  
  31.     }  
  32.   
  33.     for _, n := range ns {  
  34.         fmt.Fprintf(os.Stdout, "%s", n) // 115.239.210.26    115.239.210.27 这2个地址打开都是百度  
  35.     }  
  36. }  
/**
 * 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)

	// 百度,虽然只有一个域名,但实际上,他对应电信,网通,联通等又有多个IP地址
	ns, err := net.LookupHost(domain)
	if err != nil {
		fmt.Fprintf(os.Stderr, "Err: %s", err.Error())
		return
	}

	for _, n := range ns {
		fmt.Fprintf(os.Stdout, "%s", n) // 115.239.210.26    115.239.210.27 这2个地址打开都是百度
	}
}




  1. /**  
  2.  * Created by Administrator on 13-12-9.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "net"  
  8.     "fmt"  
  9.     "os"  
  10. )  
  11.   
  12. /**  
  13.  * 查看主机服务器(service)占用的端口,这些服务,都是tcp或者udp的  
  14.  */  
  15. func main() {  
  16.   
  17.     port, err := net.LookupPort("tcp", "telnet") // 查看telnet服务器使用的端口  
  18.   
  19.     if err != nil {  
  20.         fmt.Fprintf(os.Stderr, "未找到指定服务")  
  21.         return  
  22.     }  
  23.   
  24.     fmt.Fprintf(os.Stdout, "telnet port: %d", port)  
  25.   
  26. }  
/**
 * Created by Administrator on 13-12-9.
 */
package main

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

/**
 * 查看主机服务器(service)占用的端口,这些服务,都是tcp或者udp的
 */
func main() {

	port, err := net.LookupPort("tcp", "telnet") // 查看telnet服务器使用的端口

	if err != nil {
		fmt.Fprintf(os.Stderr, "未找到指定服务")
		return
	}

	fmt.Fprintf(os.Stdout, "telnet port: %d", port)

}



  1. /**  
  2.  * Created by Administrator on 13-12-9.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "net"  
  8.     "fmt"  
  9.     "os"  
  10. )  
  11.   
  12. func main() {  
  13.   
  14.     // TCPAddr 包涵IP 和 Port  
  15.   
  16.     // 将一个host地址转换为TCPAddr。host=ip:port  
  17.     pTCPAddr, err := net.ResolveTCPAddr("tcp", "www.baidu.com:80")  
  18.     if err != nil {  
  19.         fmt.Fprintf(os.Stderr, "Err: %s", err.Error())  
  20.         return  
  21.     }  
  22.   
  23.     fmt.Fprintf(os.Stdout, "www.baidu.com:80 IP: %s PORT: %d", pTCPAddr.IP.String(), pTCPAddr.Port)  
  24. }  
/**
 * Created by Administrator on 13-12-9.
 */
package main

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

func main() {

	// TCPAddr 包涵IP 和 Port

	// 将一个host地址转换为TCPAddr。host=ip:port
	pTCPAddr, err := net.ResolveTCPAddr("tcp", "www.baidu.com:80")
	if err != nil {
		fmt.Fprintf(os.Stderr, "Err: %s", err.Error())
		return
	}

	fmt.Fprintf(os.Stdout, "www.baidu.com:80 IP: %s PORT: %d", pTCPAddr.IP.String(), pTCPAddr.Port)
}



  1. /**  
  2.  * Created by Administrator on 13-12-10.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "net"  
  8.     "fmt"  
  9.     "os"  
  10.     "io/ioutil"  
  11. )  
  12.   
  13. func main() {  
  14.   
  15.     url := "www.baidu.com:80"  
  16.   
  17.     pRemoteTCPAddr, err := net.ResolveTCPAddr("tcp4", url)  
  18.   
  19.     if err != nil {  
  20.         fmt.Fprintf(os.Stderr, "Error: %s", err.Error())  
  21.         return  
  22.     }  
  23.   
  24.     // pLocalTCPAddr, err := net.ResolveTCPAddr("tcp", "127.0.0.1:7070")  
  25.   
  26.     pTCPConn, err := net.DialTCP("tcp", nil/*pLocalTCPAddr*/, pRemoteTCPAddr)  
  27.   
  28.     if err != nil {  
  29.         fmt.Fprintf(os.Stderr, "Error: %s", err.Error())  
  30.         return  
  31.     }  
  32.   
  33.   
  34.     n, err := pTCPConn.Write([]byte("HEAD / HTTP/1.0\r\n\r\n"))  
  35.     if err != nil {  
  36.         fmt.Fprintf(os.Stderr, "Error: %s", err.Error())  
  37.         return  
  38.     }  
  39.     defer pTCPConn.Close()  
  40.   
  41.     fmt.Fprintf(os.Stdout, "writed: %d\n", n)  
  42.   
  43.     buf, err := ioutil.ReadAll(pTCPConn)  
  44.     r := len(buf)  
  45.     fmt.Fprintf(os.Stdout, string(buf[:r]))  
  46.     fmt.Fprintf(os.Stdout, "readed: %d\n", r)  
  47.   
  48. }  
/**
 * Created by Administrator on 13-12-10.
 */
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/*pLocalTCPAddr*/, pRemoteTCPAddr)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error: %s", err.Error())
		return
	}


	n, err := pTCPConn.Write([]byte("HEAD / HTTP/1.0\r\n\r\n"))
	if err != nil {
		fmt.Fprintf(os.Stderr, "Error: %s", 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)

}



  1. /**  
  2.  * Created by Administrator on 13-12-10.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "net"  
  8.     "fmt"  
  9.     "os"  
  10.     "time"  
  11. )  
  12.   
  13. func main() {  
  14.   
  15.     pTCPAddr, error := net.ResolveTCPAddr("tcp4", ":7070")  
  16.     if error != nil {  
  17.         fmt.Fprintf(os.Stdout, "Error: %s", error.Error())  
  18.         return  
  19.     }  
  20.     pTCPListener, error := net.ListenTCP("tcp4", pTCPAddr)  
  21.     if error != nil {  
  22.         fmt.Fprintf(os.Stdout, "Error: %s", error.Error())  
  23.         return  
  24.     }  
  25.     defer pTCPListener.Close()  
  26.   
  27.     for {  
  28.         pTCPConn, error := pTCPListener.AcceptTCP()  
  29.         if error != nil {  
  30.             fmt.Fprintf(os.Stdout, "Error: %s", error.Error())  
  31.             continue  
  32.         }  
  33.         go connHandler(pTCPConn)  
  34.     }  
  35. }  
  36.   
  37. func connHandler(conn *net.TCPConn) {  
  38.     defer conn.Close()  
  39.     now := time.Now()  
  40.     conn.Write([]byte(now.String() + "\n"))  
  41. }  
/**
 * 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: %s", error.Error())
		return
	}
	pTCPListener, error := net.ListenTCP("tcp4", pTCPAddr)
	if error != nil {
		fmt.Fprintf(os.Stdout, "Error: %s", error.Error())
		return
	}
	defer pTCPListener.Close()

	for {
		pTCPConn, error := pTCPListener.AcceptTCP()
		if error != nil {
			fmt.Fprintf(os.Stdout, "Error: %s", error.Error())
			continue
		}
		go connHandler(pTCPConn)
	}
}

func connHandler(conn *net.TCPConn) {
	defer conn.Close()
	now := time.Now()
	conn.Write([]byte(now.String() + "\n"))
}




  1. /**  
  2.  * Created by Administrator on 13-12-10.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "net"  
  8.     "fmt"  
  9.     "os"  
  10.     "time"  
  11. )  
  12.   
  13. func main() {  
  14.   
  15.     //url := "baidu.com:80"  
  16.     url := "facebook.com:80"  
  17.     conn, error := net.DialTimeout("tcp", url, time.Second * 10) // 带有超时限制的conn  
  18.     if error != nil {  
  19.         fmt.Fprintf(os.Stderr, "Error: %s", error.Error())  
  20.         return  
  21.     }  
  22.   
  23.     n , error := conn.Write([]byte("HEAD / HTTP/1.0\r\n\r\n"))  
  24.     if error != nil {  
  25.         fmt.Fprintf(os.Stderr, "Error: %s", error.Error())  
  26.         return  
  27.     }  
  28.   
  29.     fmt.Fprintf(os.Stdout, "writed: %d", n)  
  30.   
  31.     buf := make([]byte, 2048)  
  32.     n, error = conn.Read(buf)  
  33.     if error != nil {  
  34.         fmt.Fprintf(os.Stderr, "Error: %s", error.Error())  
  35.         return  
  36.     }  
  37.   
  38.     fmt.Fprintf(os.Stdout, string(buf[:n]))  
  39. }  
/**
 * 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: %s", error.Error())
		return
	}

	n , error := conn.Write([]byte("HEAD / HTTP/1.0\r\n\r\n"))
	if error != nil {
		fmt.Fprintf(os.Stderr, "Error: %s", 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, "Error: %s", error.Error())
		return
	}

	fmt.Fprintf(os.Stdout, string(buf[:n]))
}




  1. /**  
  2.  * Created by Administrator on 13-12-10.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "net"  
  8.     "fmt"  
  9.     "os"  
  10. )  
  11.   
  12. /**  
  13.  * UDP 服务器  
  14.  */  
  15. func main() {  
  16.     pUDPAddr, err := net.ResolveUDPAddr("udp", ":7070")  
  17.   
  18.     if err != nil {  
  19.         fmt.Fprintf(os.Stderr, "Error: %s", err.Error())  
  20.         return  
  21.     }  
  22.   
  23.     pUDPConn, err := net.ListenUDP("udp", pUDPAddr)  
  24.   
  25.     if err != nil {  
  26.         fmt.Fprintf(os.Stderr, "Error: %s", err.Error())  
  27.         return  
  28.     }  
  29.   
  30.     defer pUDPConn.Close()  
  31.   
  32.     for {  
  33.   
  34.         buf := make([]byte, 256)  
  35.         n , pUDPAddr, err := pUDPConn.ReadFromUDP(buf)  
  36.   
  37.         if err != nil {  
  38.             fmt.Fprintf(os.Stderr, "Error: %s", err.Error())  
  39.             return  
  40.         }  
  41.         fmt.Fprintf(os.Stdout, "readed: %d", n)  
  42.   
  43.         n, err = pUDPConn.WriteToUDP(buf, pUDPAddr)  
  44.         if err != nil {  
  45.             fmt.Fprintf(os.Stderr, "Error: %s", err.Error())  
  46.             return  
  47.         }  
  48.         fmt.Fprintf(os.Stdout, "writed: %d", n)  
  49.     }  
  50. }  
/**
 * 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, "Error: %s", err.Error())
		return
	}

	pUDPConn, err := net.ListenUDP("udp", pUDPAddr)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error: %s", err.Error())
		return
	}

	defer pUDPConn.Close()

	for {

		buf := make([]byte, 256)
		n , pUDPAddr, err := pUDPConn.ReadFromUDP(buf)

		if err != nil {
			fmt.Fprintf(os.Stderr, "Error: %s", err.Error())
			return
		}
		fmt.Fprintf(os.Stdout, "readed: %d", n)

		n, err = pUDPConn.WriteToUDP(buf, pUDPAddr)
		if err != nil {
			fmt.Fprintf(os.Stderr, "Error: %s", err.Error())
			return
		}
		fmt.Fprintf(os.Stdout, "writed: %d", n)
	}
}



  1. /**  
  2.  * Created by Administrator on 13-12-10.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "net"  
  8.     "fmt"  
  9.     "os"  
  10. )  
  11.   
  12. /**  
  13.  * UDP 客户端  
  14.  */  
  15. func main() {  
  16.   
  17.     pUDPAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:7070")  
  18.   
  19.     if err != nil {  
  20.         fmt.Fprintf(os.Stderr, "Error ResolveUDPAddr: %s", err.Error())  
  21.         return  
  22.     }  
  23.   
  24.     pUDPConn, err := net.DialUDP("udp", nil, pUDPAddr)  
  25.   
  26.     if err != nil {  
  27.         fmt.Fprintf(os.Stderr, "Error DialUDP: %s", err.Error())  
  28.         return  
  29.     }  
  30.   
  31.     n, err := pUDPConn.Write([]byte("你好啊!!!"))  
  32.   
  33.     if err != nil {  
  34.         fmt.Fprintf(os.Stderr, "Error WriteToUDP: %s", err.Error())  
  35.         return  
  36.     }  
  37.   
  38.     fmt.Fprintf(os.Stdout, "writed: %d", n)  
  39.   
  40.     buf := make([]byte, 1024)  
  41.     n, _, err = pUDPConn.ReadFromUDP(buf)  
  42.   
  43.     if err != nil {  
  44.         fmt.Fprintf(os.Stderr, "Error ReadFromUDP: %s", err.Error())  
  45.         return  
  46.     }  
  47.   
  48.     fmt.Fprintf(os.Stdout, "readed: %d  %s", n, string(buf[:n]))  
  49. }  
/**
 * Created by Administrator on 13-12-10.
 */
package main

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

/**
 * UDP 客户端
 */
func main() {

	pUDPAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:7070")

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error ResolveUDPAddr: %s", err.Error())
		return
	}

	pUDPConn, err := net.DialUDP("udp", nil, pUDPAddr)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error DialUDP: %s", err.Error())
		return
	}

	n, err := pUDPConn.Write([]byte("你好啊!!!"))

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error WriteToUDP: %s", err.Error())
		return
	}

	fmt.Fprintf(os.Stdout, "writed: %d", n)

	buf := make([]byte, 1024)
	n, _, err = pUDPConn.ReadFromUDP(buf)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error ReadFromUDP: %s", err.Error())
		return
	}

	fmt.Fprintf(os.Stdout, "readed: %d  %s", n, string(buf[:n]))
}




  1. /**  
  2.  * Created by Administrator on 13-12-10.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "net"  
  8.     "fmt"  
  9.     "os"  
  10. )  
  11.   
  12. /*  
  13. 很多时候,服务器会处理多个端口的监听!可以使用select轮询处理这种情况  
  14.   
  15.  */  
  16. func main() {  
  17.   
  18.     lsr, err := net.Listen("tcp", ":7070")  
  19.   
  20.     if err != nil {  
  21.         fmt.Fprintf(os.Stderr, "Error: %s", err.Error())  
  22.         return  
  23.     }  
  24.   
  25.     for {  
  26.         conn , err := lsr.Accept()  
  27.         if err != nil {  
  28.             fmt.Fprintf(os.Stderr, "Error: %s", err.Error())  
  29.             continue  
  30.         }  
  31.   
  32.         go connHandler(conn)  
  33.   
  34.     }  
  35.   
  36.     fmt.Println("Done !")  
  37. }  
  38.   
  39. func connHandler(conn net.Conn) {  
  40.     defer conn.Close()  
  41.   
  42.     var buf[512]byte  
  43.     for {  
  44.         n , err := conn.Read(buf[0:])  
  45.         if err != nil {  
  46.             fmt.Fprintf(os.Stderr, "Error: %s", err.Error())  
  47.             return  
  48.         }  
  49.         _, err = conn.Write(buf[0:n])  
  50.         if err != nil {  
  51.             fmt.Fprintf(os.Stderr, "Error: %s", err.Error())  
  52.             return  
  53.         }  
  54.     }  
  55. }  
/**
 * Created by Administrator on 13-12-10.
 */
package main

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

/*
很多时候,服务器会处理多个端口的监听!可以使用select轮询处理这种情况

 */
func main() {

	lsr, err := net.Listen("tcp", ":7070")

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error: %s", err.Error())
		return
	}

	for {
		conn , err := lsr.Accept()
		if err != nil {
			fmt.Fprintf(os.Stderr, "Error: %s", 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, "Error: %s", err.Error())
			return
		}
		_, err = conn.Write(buf[0:n])
		if err != nil {
			fmt.Fprintf(os.Stderr, "Error: %s", err.Error())
			return
		}
	}
}




  1. /**  
  2.  * Created by Administrator on 13-12-10.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "net"  
  8.     "fmt"  
  9.     "os"  
  10.     "bufio"  
  11. )  
  12.   
  13. func main() {  
  14.   
  15.     conn, err := net.Dial("tcp", "192.168.1.97:7070")  
  16.     if err != nil {  
  17.         fmt.Sprint(os.Stderr, "Error: %s", err.Error())  
  18.         return  
  19.     }  
  20.   
  21.   
  22.     go func() {  
  23.         var buf [512]byte  
  24.         for {  
  25.             n , err := conn.Read(buf[0:])  
  26.             if err != nil {  
  27.                 fmt.Fprintf(os.Stderr, "Error: %s", err.Error())  
  28.                 return  
  29.             }  
  30.             fmt.Fprintf(os.Stdout, string(buf[0:n]))  
  31.         }  
  32.   
  33.     }()  
  34.   
  35.     for {  
  36.         fmt.Fprintf(os.Stdout, "\n输入:")  
  37.         pReader := bufio.NewReader(os.Stdin)  
  38.         line, _, err := pReader.ReadLine()  
  39.         if err != nil {  
  40.             fmt.Fprintf(os.Stderr, "Error: %s", err.Error())  
  41.             return  
  42.         }  
  43.         conn.Write(line[0:])  
  44.     }  
  45. }  
/**
 * 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, "Error: %s", err.Error())
		return
	}


	go func() {
		var buf [512]byte
		for {
			n , err := conn.Read(buf[0:])
			if err != nil {
				fmt.Fprintf(os.Stderr, "Error: %s", 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, "Error: %s", err.Error())
			return
		}
		conn.Write(line[0:])
	}
}



  1. /**  
  2.  * Created by Administrator on 13-12-10.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "net"  
  8.     "fmt"  
  9.     "os"  
  10. )  
  11.   
  12. /**  
  13.  UDP Server  
  14.  */  
  15. func main() {  
  16.   
  17.     packetConn, err := net.ListenPacket("udp", ":7070")  
  18.   
  19.     if err != nil {  
  20.         fmt.Fprintf(os.Stdout, "Error: %s", err.Error())  
  21.         return  
  22.     }  
  23.     defer packetConn.Close()  
  24.   
  25.     var buf [512]byte  
  26.     for {  
  27.         n , addr, err := packetConn.ReadFrom(buf[0:])  
  28.         if err != nil {  
  29.             fmt.Fprintf(os.Stdout, "Error: %s", err.Error())  
  30.             return  
  31.         }  
  32.   
  33.         fmt.Fprintf(os.Stdout, "recv: %s", string(buf[0:n]))  
  34.   
  35.         _, err = packetConn.WriteTo(buf[0:n], addr)  
  36.         if err != nil {  
  37.             fmt.Fprintf(os.Stdout, "Error: %s", err.Error())  
  38.             return  
  39.         }  
  40.     }  
  41.   
  42.   
  43. }  
/**
 * 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, "Error: %s", 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, "Error: %s", 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, "Error: %s", err.Error())
			return
		}
	}


}




  1. /**  
  2.  * Created by Administrator on 13-12-10.  
  3.  */  
  4. package main  
  5.   
  6. import (  
  7.     "net"  
  8.     "fmt"  
  9.     "os"  
  10.     "time"  
  11. )  
  12.   
  13. /**  
  14.  UDP Client  
  15.  */  
  16. func main() {  
  17.     conn, err := net.Dial("udp", "127.0.0.1:7070")  
  18.   
  19.     if err != nil {  
  20.         fmt.Fprintf(os.Stdout, "Error: %s", err.Error())  
  21.         return  
  22.     }  
  23.   
  24.     defer conn.Close()  
  25.   
  26.   
  27.     _, err = conn.Write([]byte("你好啊UDP"))  
  28.     if err != nil {  
  29.         fmt.Fprintf(os.Stdout, "Error: %s", err.Error())  
  30.         return  
  31.     }  
  32.   
  33.     var buf [512]byte  
  34.     conn.SetReadDeadline(time.Now().Add(time.Second * 1))  // 阻塞,直到接收到消息,设置阻塞时间1秒  
  35.     n, err := conn.Read(buf[0:])  
  36.     if err != nil {  
  37.         fmt.Fprintf(os.Stdout, "Error: %s", err.Error())  
  38.         return  
  39.     }  
  40.   
  41.     fmt.Fprintf(os.Stdout, "recv: %s", string(buf[0:n]))  
  42.   
  43. }  
/**
 * 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, "Error: %s", err.Error())
		return
	}

	defer conn.Close()


	_, err = conn.Write([]byte("你好啊UDP"))
	if err != nil {
		fmt.Fprintf(os.Stdout, "Error: %s", err.Error())
		return
	}

	var buf [512]byte
	conn.SetReadDeadline(time.Now().Add(time.Second * 1))  // 阻塞,直到接收到消息,设置阻塞时间1秒
	n, err := conn.Read(buf[0:])
	if err != nil {
		fmt.Fprintf(os.Stdout, "Error: %s", err.Error())
		return
	}

	fmt.Fprintf(os.Stdout, "recv: %s", string(buf[0:n]))

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值