44 lines
1.1 KiB
QBasic
44 lines
1.1 KiB
QBasic
|
|
$console:only
|
||
|
|
declare library "terminkey"
|
||
|
|
function ipc_init&()
|
||
|
|
function ipc_check_message%(byval buf as _offset, byval max_len as long)
|
||
|
|
sub ipc_send_message(buf as string)
|
||
|
|
sub ipc_cleanup()
|
||
|
|
sub get_absolute_path(rel_path as string, byval abs_path as _offset, byval max_len as long)
|
||
|
|
end declare
|
||
|
|
|
||
|
|
dim r as long
|
||
|
|
r = ipc_init
|
||
|
|
print "ipc_init returned:"; r
|
||
|
|
|
||
|
|
if r = 1 then
|
||
|
|
print "We are the server! Waiting for a message..."
|
||
|
|
dim msg as string
|
||
|
|
msg = space$(100) + chr$(0)
|
||
|
|
dim start_time as double
|
||
|
|
start_time = timer
|
||
|
|
do while timer - start_time < 3
|
||
|
|
dim n as long
|
||
|
|
n = ipc_check_message(_offset(msg), 100)
|
||
|
|
if n > 0 then
|
||
|
|
print "Received: "; left$(msg, n)
|
||
|
|
exit do
|
||
|
|
end if
|
||
|
|
_limit 10
|
||
|
|
loop
|
||
|
|
ipc_cleanup
|
||
|
|
elseif r = 0 then
|
||
|
|
print "We are the client! Sending a message..."
|
||
|
|
ipc_send_message "Hello from client!"
|
||
|
|
else
|
||
|
|
print "Error initializing IPC"
|
||
|
|
end if
|
||
|
|
|
||
|
|
dim rel as string
|
||
|
|
rel = "readme.md"
|
||
|
|
dim abs_path as string
|
||
|
|
abs_path = space$(512) + chr$(0)
|
||
|
|
get_absolute_path rel, _offset(abs_path), 512
|
||
|
|
print "Absolute path of '"; rel; "' is: '"; _trim$(abs_path); "'"
|
||
|
|
|
||
|
|
system
|