Add windows-libzmq/README.md

This commit is contained in:
2025-01-24 23:45:13 +00:00
parent eae9c91e2a
commit 3f8a13dc77

70
windows-libzmq/README.md Normal file
View File

@@ -0,0 +1,70 @@
# msys2 ucrt64 gcc 설치
# go 프로젝트 폴더로 복사
```
C:\Users\j\+win\vcpkg\packages\zeromq_x64-windows\bin\libzmq-mt-4_3_5.dll
```
# server.go
```go
package main
/*
#cgo CFLAGS: -IC:/Users/j/+win/vcpkg/packages/zeromq_x64-windows/include
#cgo LDFLAGS: -LC:/Users/j/+win/vcpkg/packages/zeromq_x64-windows/lib -lzmq-mt-4_3_5
#include <zmq.h>
*/
import "C"
import (
"fmt"
"unsafe"
)
func main() {
context := C.zmq_ctx_new()
defer C.zmq_ctx_term(context)
socket := C.zmq_socket(context, C.ZMQ_REP)
defer C.zmq_close(socket)
C.zmq_bind(socket, C.CString("tcp://*:5555"))
for {
msg := C.zmq_msg_t{}
C.zmq_msg_init(&msg)
defer C.zmq_msg_close(&msg)
C.zmq_msg_recv(&msg, socket, 0)
size := C.zmq_msg_size(&msg)
data := C.zmq_msg_data(&msg)
goData := C.GoBytes(data, C.int(size))
fmt.Printf("Received: %s\n", string(goData))
C.zmq_send(socket, unsafe.Pointer(&goData[0]), C.size_t(len(goData)), 0)
}
}
```
# client.py
```py
import zmq
import time
context = zmq.Context()
print("Connecting to server...")
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")
for request in range(10):
print(f"Sending request {request} ...")
socket.send(f"Hello {request}".encode())
# Get the reply.
message = socket.recv()
print(f"Received reply {request} [ {message.decode()} ]")
# Wait for a second before next request
time.sleep(1)
```