33 lines
814 B
Go
33 lines
814 B
Go
package main
|
|
|
|
import (
|
|
"unsafe"
|
|
|
|
"github.com/goplus/llgo/c"
|
|
"github.com/goplus/llgo/c/os"
|
|
"github.com/goplus/llgo/c/socket"
|
|
)
|
|
|
|
func main() {
|
|
sockfd := socket.Socket(socket.AF_INET, socket.SOCK_STREAM, 0)
|
|
msg := c.Str("Hello, World!")
|
|
defer os.Close(sockfd)
|
|
|
|
server := socket.GetHostByName(c.Str("localhost"))
|
|
if server == nil {
|
|
c.Perror(c.Str("hostname get error"))
|
|
return
|
|
}
|
|
|
|
servAddr := &socket.SockaddrIn{}
|
|
servAddr.Family = socket.AF_INET
|
|
servAddr.Port = socket.Htons(uint16(1234))
|
|
c.Memcpy(unsafe.Pointer(&servAddr.Addr.Addr), unsafe.Pointer(*server.AddrList), uintptr(server.Length))
|
|
|
|
if res := socket.Connect(sockfd, (*socket.SockAddr)(unsafe.Pointer(servAddr)), c.Uint(16)); res < 0 {
|
|
c.Perror(c.Str("connect error"))
|
|
return
|
|
}
|
|
os.Write(sockfd, unsafe.Pointer(msg), c.Strlen(msg))
|
|
}
|