2015-05-06 32 views
-2

我试着写在围棋TCP套接字,但只有收到“无效参数”与此代码:去写插座 - 无效的参数

_, err := conn.Write([]byte("test")) 
if err != nil { 
    fmt.Println(err.Error()) 
} 
+0

表盘怎么样? http://golang.org/pkg/net/ – MIkCode

+1

请提供更多的上下文。什么是'conn',以及你是如何创建它的? – JimB

回答

0

这里是你想要做什么一个简单的示例( ?也许),要知道,你应该做一个TCP服务器监听的端口8999第一次运行前

nc -l 8999  #or maybe nc -l -p 8999 

代码:

package main 

import (
    "net" 
) 

func main() { 
    conn, _ := net.Dial("tcp", "localhost:8999") 
    conn.Write([]byte("test")) 
} 

如果这不是你的问题,你应该提供更多信息。

+1

稍微修改:您不提供'-p'和'-l'以及'nc'(实际上它是一个错误)。你只需要'-l '来让它监听一个端口。 –

+0

@SimonWhitehead感谢提醒,但是我发现nc('netcat')的行为会因实现的不同而有所不同,可能是因为bsd版本和传统版本? – armnotstrong

+0

@SimonWhitehead我曾经遇到过一种情况:'nc -l 8999'在我的debian文件夹中不起作用,从那时起,我使用'nc -l -p 8999'代替,我只是检查[manual](http ://www.unix.com/man-page/all/1/nc/)的bsd版本,它表示使用'-p'是错误的,但我不知道会出现什么问题。而且我还发现,[抱怨](http://www.g-loaded.eu/2006/11/06/netcat-a-couple-of-useful-examples/#comment-19403)that'nc'will not除非给予'-p',否则,如果你能澄清会出现什么问题,我将非常感激,并且我非常怀疑那个手动的人只是想吓唬我们:-) – armnotstrong