本文整理汇总了Golang中bufio.NewReader函数的典型用法代码### 示例。如果您正苦于以下问题:Golang NewReader函数的具体用法?Golang NewReader怎么用?Golang NewReader使用的例子?那么恭喜您, 这里精选的函数代码### 示例或许可以为您提供帮助。
在下文中一共展示了NewReader函数的20个代码### 示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码### 示例。
示例1: Symbol
// Symbol looks up the program counters listed in the request,
// responding with a table mapping program counters to function names.
// The package initialization registers it as /debug/pprof/symbol.
func Symbol(c *http.Conn, r *http.Request) {
c.SetHeader("content-type", "text/plain; charset=utf-8")
// We don't know how many symbols we have, but we
// do have symbol information. Pprof only cares whether
// this number is 0 (no symbols available) or > 0.
fmt.Fprintf(c, "num_symbols: 1\n")
var b *bufio.Reader
if r.Method == "POST" {
b = bufio.NewReader(r.Body)
} else {
b = bufio.NewReader(strings.NewReader(r.URL.RawQuery))
}
for {
w, err := b.ReadSlice('+')
if err == nil {
w = w[0 : len(w)-1] // trim +
}
pc, _ := strconv.Btoui64(string(w), 0)
if pc != 0 {
f := runtime.FuncForPC(uintptr(pc))
if f != nil {
fmt.Fprintf(c, "%#x %s\n", pc, f.Name())
}
}
// Wait until here to check for err; the last
// symbol will have an err because it doesn't end in +.
if err != nil {
break
}
}
}
开发者ID:rapgamer,项目名称:golang-china,代码行数:38,代码来源:pprof.go
示例2: main
func main() {
// connect to server
conn, err := net.Dial("tcp", ":15440")
if err != nil {
fmt.Fprintf(os.Stderr, "Error connecting to port 15440: %v\n", err)
os.Exit(1)
}
for {
// get message from stdin
fmt.Println("Say something: ")
message, err := bufio.NewReader(os.Stdin).ReadString('\n')
if err != nil {
fmt.Fprintf(os.Stderr, "Error reading from stdin: %v\n", err)
os.Exit(1)
}
// send message to server
fmt.Fprintf(conn, "%v\n", message)
// receive message from server
message, err = bufio.NewReader(conn).ReadString('\n')
if err != nil {
fmt.Fprintf(os.Stderr, "Error reading from server: %v\n", err)
os.Exit(1)
}
// print server message to Stdout
fmt.Fprintf(os.Stdout, "%v\n", message)
}
}
开发者ID:jnylam,项目名称:cs189a,代码行数:31,代码来源:main.go
示例3: dsInTxt
func dsInTxt(c *cmdapp.Command, fname string) {
var in *bufio.Reader
if len(fname) > 0 {
f, err := os.Open(fname)
if err != nil {
fmt.Fprintf(os.Stderr, "%s\n", c.ErrStr(err))
return
}
defer f.Close()
in = bufio.NewReader(f)
} else {
in = bufio.NewReader(os.Stdin)
}
for {
tn, err := readLine(in)
if err != nil {
break
}
ln := strings.Join(tn, " ")
set := &jdh.Dataset{
Title: ln,
}
id, err := localDB.Exec(jdh.Add, jdh.Datasets, set)
if err != nil {
fmt.Fprintf(os.Stderr, "%s\n", c.ErrStr(err))
continue
}
if verboseFlag {
fmt.Fprintf(os.Stdout, "%s %s\n", id, set.Title)
}
}
}
开发者ID:js-arias,项目名称:jdh,代码行数:32,代码来源:ds.in.go
示例4: waiter
// waiter is a function that waits for any messages received by the connection to the server.
// When a message comes in, the screen will be re-rendered.
func waiter(connection net.Conn) {
rawMessage, err := bufio.NewReader(connection).ReadString('\x04')
loop:
for err == nil {
mutex.Lock()
message := rawMessage[1 : len(rawMessage)-1]
switch rawMessage[0] {
case '\x00':
printer.run = false
message = strings.Replace(message, "\x1f", ": ", 2)
clientSettings.messageList = append(clientSettings.messageList, message)
printer.printMessages()
case '\x01':
clientSettings.messageList = append(clientSettings.messageList, "[ "+message+" says hi :) ]")
case '\x02':
clientSettings.messageList = append(clientSettings.messageList, "[ "+message+" says bye :( ]")
case '\x03':
clientSettings.messageList = append(clientSettings.messageList, "[ SERVER: "+message+" ]")
break loop
}
mutex.Unlock()
rawMessage, err = bufio.NewReader(connection).ReadString('\x04')
}
printer.printMessages()
printer.run = false
if err != nil {
fmt.Println("ERROR: Connection to server lost.")
}
cleanup(connection)
}
开发者ID:hauke96,项目名称:g0Chat,代码行数:36,代码来源:_client.go
示例5: TestStarRequest
func TestStarRequest(t *testing.T) {
req, err := ReadRequest(bufio.NewReader(strings.NewReader("M-SEARCH * HTTP/1.1\r\n\r\n")))
if err != nil {
return
}
var out bytes.Buffer
if err := req.Write(&out); err != nil {
t.Fatal(err)
}
back, err := ReadRequest(bufio.NewReader(&out))
if err != nil {
t.Fatal(err)
}
// Ignore the Headers (the User-Agent breaks the deep equal,
// but we don't care about it)
req.Header = nil
back.Header = nil
if !reflect.DeepEqual(req, back) {
t.Errorf("Original request doesn't match Request read back.")
t.Logf("Original: %#v", req)
t.Logf("Original.URL: %#v", req.URL)
t.Logf("Wrote: %s", out.Bytes())
t.Logf("Read back (doesn't match Original): %#v", back)
}
}
开发者ID:fjballest,项目名称:golang,代码行数:25,代码来源:request_test.go
示例6: TestHandling
func TestHandling(t *testing.T) {
cn, err := net.Dial("tcp", "localhost:3636")
if err != nil {
fmt.Println(err)
t.FailNow()
}
shortMsg := "%d gameStart\n"
longMsg := "%d gotta type a very long message such that it is over 100 chars such that it will detect it as being a GameEnd event\n"
for i := 0; i < 2; i++ {
_, err := cn.Write([]byte(fmt.Sprintf(shortMsg, i)))
if err != nil {
fmt.Println(err)
}
_, err = bufio.NewReader(cn).ReadString('\n')
if err != nil {
fmt.Println(err)
}
_, err = cn.Write([]byte(fmt.Sprintf(longMsg, i)))
if err != nil {
fmt.Println(err)
}
_, err = bufio.NewReader(cn).ReadString('\n')
if err != nil {
fmt.Println(err)
}
}
cn.Close()
}
开发者ID:JLaferri,项目名称:HardwareEnhancedMelee,代码行数:31,代码来源:server_test.go
示例7: Dial
// Dial connects to server at address
func (handler *ConnHandler) Dial(addr string) ([]Peer, error) {
var peers []Peer
conn, err := net.Dial("tcp", addr)
if err != nil {
log.Println(err)
return nil, err
}
writer := bufio.NewWriter(conn)
reader := bufio.NewReader(conn)
line, _ := reader.ReadString('\n')
line = strings.Trim(line, "\n")
addrs := strings.Split(line, ";")
info := strings.Split(addrs[0], ",")
writer.WriteString(handler.String() + "\n")
writer.Flush()
peers = append(peers, NewPeer(conn, conn, info[0], info[1]))
for _, a := range addrs[1:] {
info := strings.Split(a, ",")
c, _ := net.Dial("tcp", info[0])
writer = bufio.NewWriter(c)
writer.WriteString(handler.String() + "\n")
writer.Flush()
reader = bufio.NewReader(c)
line, _ = reader.ReadString('\n')
peers = append(peers, NewPeer(c, c, info[0], info[1]))
}
return peers, nil
}
开发者ID:jpanda109,项目名称:gocc,代码行数:29,代码来源:connhandler.go
示例8: TestServeHTTPReadRequestError
func TestServeHTTPReadRequestError(t *testing.T) {
p := NewProxy(mitm)
// Shorten the timeout to force a ReadRequest error.
p.Timeout = time.Second
rc, wc := pipeWithTimeout()
defer rc.Close()
defer wc.Close()
rw := newHijackRecorder(wc)
req, err := http.NewRequest("CONNECT", "//www.example.com:443", nil)
if err != nil {
t.Fatalf("http.NewRequest(): got %v, want no error", err)
}
go p.ServeHTTP(rw, req)
res, err := http.ReadResponse(bufio.NewReader(rc), req)
if err != nil {
t.Fatalf("http.ReadResponse(): got %v, want no error", err)
}
res.Body.Close()
tlsConn := tlsClient(rc, p.mitm.Authority, "www.example.com")
tlsConn.Write([]byte("INVALID /invalid NOTHTTP/1.1\r\n"))
if _, err = http.ReadResponse(bufio.NewReader(tlsConn), nil); err != io.ErrUnexpectedEOF {
t.Fatalf("http.ReadResponse(): got %v, want io.ErrUnexpectedEOF", err)
}
}
开发者ID:hanscj1,项目名称:martian,代码行数:30,代码来源:proxy_test.go
示例9: Start
func (t *Testbed) Start() {
t.mu.Lock()
defer t.mu.Unlock()
if t.pipe != nil {
return
}
t.pipe = exec.Command(t.cmd, t.args...)
w, err := t.pipe.StdinPipe()
if err != nil {
panic(err)
}
t.apiWrite = bufio.NewWriter(w)
r, err := t.pipe.StdoutPipe()
if err != nil {
panic(err)
}
t.apiRead = bufio.NewReader(r)
r, err = t.pipe.StderrPipe()
if err != nil {
panic(err)
}
t.apiErr = bufio.NewReader(r)
if err := t.pipe.Start(); err != nil {
panic(err)
}
}
开发者ID:najeira,项目名称:testbed,代码行数:32,代码来源:testbed.go
示例10: ProcessApiBlueprintTest
/**
* Load and process the api blueprint file to get the endpoints,
* requests and responses
*/
func ProcessApiBlueprintTest(filepath string) map[string]string {
bpm := make(map[string]string)
apibfile, err := os.Open("blueprint/test_buyers.json")
if err != nil {
fmt.Printf("error opening file: %v\n", err)
os.Exit(1)
}
var outputmock string
reader := bufio.NewReader(apibfile)
line, e := Readln(reader)
for e == nil {
outputmock += line
line, e = Readln(reader)
}
bpm["/crm-api/v1.0/buyers"] = outputmock
apibfile, err = os.Open("blueprint/test_purchases.json")
if err != nil {
fmt.Printf("error opening file: %v\n", err)
os.Exit(1)
}
reader = bufio.NewReader(apibfile)
line, e = Readln(reader)
for e == nil {
outputmock += line
line, e = Readln(reader)
}
bpm["/crm-api/v1.0/purchases"] = outputmock
return bpm
}
开发者ID:joliva-ob,项目名称:mockapi,代码行数:37,代码来源:blueprint.go
示例11: main
func main() {
flag.StringVar(&in, "i", "", "input file (*.apib)")
flag.Parse()
if in == "" {
fmt.Println("no input file provided. usage: -i input.apib")
os.Exit(1)
}
f, err := os.Open(in)
if err != nil {
fmt.Printf("error while opening file %s: %v\n", in, err)
os.Exit(1)
}
defer f.Close()
rd := bufio.NewReader(f)
input, err := ioutil.ReadAll(rd)
if err != nil {
fmt.Printf("error while reading file %s: %v\n", in, err)
os.Exit(1)
}
errorCode := 0
b, err := godrafter.DrafterParse(input, 0)
if err != nil {
fmt.Printf("error while parsing: %v\n", err)
errorCode = 1
}
if b != nil {
rd = bufio.NewReader(bytes.NewReader(b))
_, err = io.Copy(os.Stdout, rd)
if err != nil {
fmt.Printf("io error: %v\n", err)
errorCode = 2
}
}
os.Exit(errorCode)
}
开发者ID:lendico-seong,项目名称:godrafter,代码行数:35,代码来源:godrafter.go
示例12: handleConn
// handleConn processes conn. This is run in a separate goroutine.
func (s *Service) handleConn(conn net.Conn) {
defer s.statMap.Add(statConnectionsActive, -1)
s.statMap.Add(statConnectionsActive, 1)
s.statMap.Add(statConnectionsHandled, 1)
// Read header into buffer to check if it's HTTP.
var buf bytes.Buffer
r := bufio.NewReader(io.TeeReader(conn, &buf))
// Attempt to parse connection as HTTP.
_, err := http.ReadRequest(r)
// Rebuild connection from buffer and remaining connection data.
bufr := bufio.NewReader(io.MultiReader(&buf, conn))
conn = &readerConn{Conn: conn, r: bufr}
// If no HTTP parsing error occurred then process as HTTP.
if err == nil {
s.statMap.Add(statHTTPConnectionsHandled, 1)
s.httpln.ch <- conn
return
}
// Otherwise handle in telnet format.
s.wg.Add(1)
s.handleTelnetConn(conn)
}
开发者ID:rhyolight,项目名称:influxdb,代码行数:28,代码来源:service.go
示例13: ReadBinlog
func ReadBinlog(reader io.Reader) (err error) {
c := &proto.BufReader{Reader: bufio.NewReader(reader)}
buf := &bytes.Buffer{}
r := &proto.BufReader{Reader: bufio.NewReader(buf)}
tmp := make([]byte, 4)
_, err = c.Read(tmp)
if err != nil {
return
}
// http://dev.mysql.com/doc/internals/en/binlog-file-header.html
if bytes.Compare(tmp, []byte{0xfe, 0x62, 0x69, 0x6e}) != 0 {
err = ErrFileHeader
return
}
h := &EventHeader{}
h.Read(c)
spew.Dump(h)
_, err = io.CopyN(buf, c, int64(h.EventSize))
if err != nil {
panic(err)
}
f := &FormatDescriptionEvent{}
f.Read(r)
spew.Dump(f)
return
}
开发者ID:no2key,项目名称:myfacility,代码行数:28,代码来源:reader.go
示例14: test
func test() {
cmd := exec.Command("/usr/local/bin/python", "test.py")
outPipe, err := cmd.StdoutPipe()
if err != nil {
fmt.Println(err)
}
errPipe, err := cmd.StderrPipe()
if err != nil {
fmt.Println(err)
}
outBuf := bufio.NewReader(outPipe)
errBuf := bufio.NewReader(errPipe)
go stdOut(outBuf)
go stdErr(errBuf)
err = cmd.Start()
if err != nil {
fmt.Println(err)
return
}
fmt.Println(cmd.Process.Pid)
defer cmd.Process.Kill()
defer cmd.Process.Release()
cmd.Wait()
}
开发者ID:0x9e3779b9,项目名称:golang_lab,代码行数:25,代码来源:test.go
示例15: bodyDiff
func bodyDiff(win *acme.Win, ffile string) (bool, error) {
tf, err := os.Open(ffile)
if err != nil {
return false, err
}
defer tf.Close()
win.Seek("body", 0, 0)
fr := bufio.NewReader(tf)
br := bufio.NewReader(&bodyReader{win})
for {
fb, errf := fr.ReadByte()
if errf != nil && errf != io.EOF {
return false, errf
}
bb, errb := br.ReadByte()
if errb != nil && errb != io.EOF {
return false, errb
}
if fb != bb {
return true, nil
}
if errf == io.EOF && errb == io.EOF {
return false, nil
}
}
}
开发者ID:uluyol,项目名称:tools,代码行数:26,代码来源:main.go
示例16: main
func main() {
// listen for connections
if ln, err := net.Listen("tcp", ":8080"); err == nil {
for {
// accept connections
if conn, err := ln.Accept(); err == nil {
reader := bufio.NewReader(conn)
// read requests from the client
if req, err := http.ReadRequest(reader); err == nil {
// connect to the backend web server
if be, err := net.Dial("tcp", "127.0.0.1:8081"); err == nil {
be_reader := bufio.NewReader(be)
// send the request to the backend
if err := req.Write(be); err == nil {
// read the response from the backend
if resp, err := http.ReadResponse(be_reader, req); err == nil {
// send the response to the client, making sure to close it
resp.Close = true
if err := resp.Write(conn); err == nil {
log.Printf("proxied %s: got %d", req.URL.Path, resp.StatusCode)
}
conn.Close()
// loop back to accepting the next connection
}
}
}
}
}
}
}
}
开发者ID:cleesmith,项目名称:golang_learning,代码行数:31,代码来源:main.go
示例17: Query
func (tbx *Bix) Query(region interfaces.IPosition) (interfaces.RelatableIterator, error) {
tbx2, err := newShort(tbx)
if err != nil {
return nil, err
}
if region == nil {
var l string
var err error
buf := bufio.NewReader(tbx2.bgzf)
l, err = buf.ReadString('\n')
for i := 0; i < int(tbx2.Index.Skip) || rune(l[0]) == tbx2.Index.MetaChar; i++ {
l, err = buf.ReadString('\n')
if err != nil {
return nil, err
}
}
if tbx2.Index.Skip == 0 && rune(l[0]) != tbx2.Index.MetaChar {
buf = bufio.NewReader(io.MultiReader(strings.NewReader(l), buf))
}
return bixerator{nil, buf, tbx2, region}, nil
}
cr, err := tbx2.ChunkedReader(region.Chrom(), int(region.Start()), int(region.End()))
if err != nil {
if cr != nil {
tbx2.Close()
cr.Close()
}
return nil, err
}
return bixerator{cr, bufio.NewReader(cr), tbx2, region}, nil
}
开发者ID:brentp,项目名称:bix,代码行数:32,代码来源:bix.go
示例18: handleConnection
// handleConnection is spawned once per connection from a client,
// and exits when the client is done sending requests
func handleConnection(conn net.Conn) {
// always close the conn no matter how this function exits:
defer conn.Close()
reader := bufio.NewReader(conn)
// loop to handle multiple requests from user conn,
// since we are now running concurrently:
for {
req, err := http.ReadRequest(reader)
if err != nil {
if err != io.EOF {
log.Printf("Failed to read request: %s", err)
}
return
}
// connect to a backend and send the request along
if be, err := net.Dial("tcp", "127.0.0.1:8081"); err == nil {
be_reader := bufio.NewReader(be)
if err := req.Write(be); err == nil {
if resp, err := http.ReadResponse(be_reader, req); err == nil {
FixHttp10Response(resp, req)
if err := resp.Write(conn); err == nil {
log.Printf("proxied %s: got %d", req.URL.Path, resp.StatusCode)
}
if resp.Close {
return
}
}
}
}
}
}
开发者ID:cleesmith,项目名称:golang_learning,代码行数:33,代码来源:main.go
示例19: TestGenerate
func TestGenerate(t *testing.T) {
const testTemplate = `
html:
body: br awef wef "fwef'wef" 22323 0.1112 49U true false nil inf -inf
;
;`
p := otp.ConnectTo(ots.ConnectTo(bufio.NewReader(bytes.NewBufferString(testTemplate))))
if tpl, err := p.Template(); err == nil {
m := conv.Map(tpl)
conv.Resolve(m)
buf := bytes.NewBuffer(nil)
otg.ConnectTo(buf).Write(m)
s := buf.String()
t.Log(s)
p0 := otp.ConnectTo(ots.ConnectTo(bufio.NewReader(bytes.NewBufferString(s))))
if tpl0, err0 := p0.Template(); err0 == nil {
m0 := conv.Map(tpl0)
conv.Resolve(m0)
prettyPrintObject(m0, t)
}
} else {
t.Fatal(err)
}
{
buf := bytes.NewBuffer(nil)
otg.ConnectTo(buf).Write(conv.Begin(otm.Qualident{Class: "test"}).Value("asdf asdf asdf `asdfasdf").Value([]uint8{0, 1, 2, 3, 4}).End())
s := buf.String()
t.Log(s)
}
}
开发者ID:kpmy,项目名称:ot,代码行数:32,代码来源:ot_test.go
示例20: main
func main() {
conn, err := net.Dial("tcp", "127.0.0.1:8081")
if err != nil {
fmt.Println("connect to server error!")
return
}
defer conn.Close()
message, _ := bufio.NewReader(conn).ReadString('\n')
fmt.Print(message)
for {
// read in input from stdin
reader := bufio.NewReader(os.Stdin)
fmt.Print("Text to send: ")
text, _ := reader.ReadString('\n')
// send to socket
_, _ = conn.Write([]byte(text))
//fmt.Fprintf(conn, text + "\n")
// listen for reply
message, _ := bufio.NewReader(conn).ReadString('\n')
if (message == "Good bye\n") {
break
} else {
fmt.Print("Message from server: " + message)
}
}
fmt.Println("conn is closed")
}
开发者ID:b96705008,项目名称:go-socket,代码行数:31,代码来源:test-client.go