修复错误日志
This commit is contained in:
14
8.1.md
14
8.1.md
@@ -105,7 +105,7 @@ Go语言中通过net包中的`DialTCP`函数来建立一个TCP连接,并返回
|
||||
Server: lighttpd/1.4.23
|
||||
|
||||
我们的客户端代码如下所示:
|
||||
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
@@ -145,7 +145,7 @@ Go语言中通过net包中的`DialTCP`函数来建立一个TCP连接,并返回
|
||||
上面我们编写了一个TCP的客户端程序,我们也可以通过net包来创建一个服务器端程序,在服务器端我们需要绑定服务到指定的端口,并监听,当有客户端请求到达的时候接收客户端连接。net包中有相应的函数,函数定义如下:
|
||||
|
||||
func ListenTCP(net string, laddr *TCPAddr) (l *TCPListener, err os.Error)
|
||||
func (l *TCPListener) Accept() (c Conn, err os.Error)
|
||||
func (l *TCPListener) Accept() (c Conn, err os.Error)
|
||||
|
||||
参数说明同DialTCP的参数一样。下面我们实现了一个简单的时间同步服务,监听在7777端口
|
||||
|
||||
@@ -186,7 +186,7 @@ Go语言中通过net包中的`DialTCP`函数来建立一个TCP连接,并返回
|
||||
上面的代码执行的时候是单任务的,不能同时接收多个请求,那么该如何改造以使它支持多并发呢?Go里面有一个goroutine机制,请看下面改造之后的代码
|
||||
|
||||
package main
|
||||
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
@@ -237,9 +237,9 @@ Go语言包中处理UDP Socket和TCP Socket不同的地方就是在处理服务
|
||||
更多的内容请查看`net`包的文档。
|
||||
##UDP Socket
|
||||
Go语言包中处理UDP Socket和TCP Socket不同的地方就是在处理服务器端的时候,当有多个客户端请求来临的时候如何处理数据包,因为他缺少了每个连接的accept函数。其他基本都是一模一样,只有TCP换成了UDP而已。他的几个主要函数如下所示:
|
||||
|
||||
|
||||
func ResolveUDPAddr(net, addr string) (*UDPAddr, os.Error)
|
||||
func DialUDP(net string, laddr, raddr *UDPAddr) (c *UDPConn, err os.Error)
|
||||
func DialUDP(net string, laddr, raddr *UDPAddr) (c *UDPConn, err os.Error)
|
||||
func ListenUDP(net string, laddr *UDPAddr) (c *UDPConn, err os.Error)
|
||||
func (c *UDPConn) ReadFromUDP(b []byte) (n int, addr *UDPAddr, err os.Error
|
||||
func (c *UDPConn) WriteToUDP(b []byte, addr *UDPAddr) (n int, err os.Error)
|
||||
@@ -274,9 +274,9 @@ Go语言包中处理UDP Socket和TCP Socket不同的地方就是在处理服务
|
||||
os.Exit(0)
|
||||
}
|
||||
func checkError(err error) {
|
||||
if err != nil {
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Fatal error ", err.Error())
|
||||
os.Exit(1)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user