Files
llgo/_demo/socket/client/client.go

33 lines
781 B
Go
Raw Normal View History

2024-07-12 23:37:55 +08:00
package main
import (
"unsafe"
2025-04-03 15:52:18 +08:00
"github.com/goplus/lib/c"
"github.com/goplus/lib/c/net"
"github.com/goplus/lib/c/os"
2024-07-12 23:37:55 +08:00
)
func main() {
2024-07-18 10:28:14 +08:00
sockfd := net.Socket(net.AF_INET, net.SOCK_STREAM, 0)
2024-07-12 23:37:55 +08:00
msg := c.Str("Hello, World!")
defer os.Close(sockfd)
2024-07-18 10:28:14 +08:00
server := net.GetHostByName(c.Str("localhost"))
2024-07-12 23:37:55 +08:00
if server == nil {
c.Perror(c.Str("hostname get error"))
return
}
2024-07-18 10:28:14 +08:00
servAddr := &net.SockaddrIn{}
servAddr.Family = net.AF_INET
servAddr.Port = net.Htons(uint16(1234))
2024-07-12 23:37:55 +08:00
c.Memcpy(unsafe.Pointer(&servAddr.Addr.Addr), unsafe.Pointer(*server.AddrList), uintptr(server.Length))
2024-07-18 10:28:14 +08:00
if res := net.Connect(sockfd, (*net.SockAddr)(unsafe.Pointer(servAddr)), c.Uint(16)); res < 0 {
2024-07-12 23:37:55 +08:00
c.Perror(c.Str("connect error"))
return
}
os.Write(sockfd, unsafe.Pointer(msg), c.Strlen(msg))
}